Frage

layout\layout_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rR1MessageBubble"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:id="@+id/rR2MessageBubble"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/drawable_sky_background_frame">

    </RelativeLayout>

</RelativeLayout>

layout\layout_component.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:orientation="vertical"
    android:background="@drawable/frame">


    <TextView
        android:id="@+id/txtViewTest"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:text="Hello!"
        android:gravity="center" />

</LinearLayout>

drawable\frame.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >

    <solid android:color="#FF07DD43" />

    <corners android:bottomRightRadius="3dp" 
                android:bottomLeftRadius="3dp" 
                android:topLeftRadius="3dp" 
                android:topRightRadius="3dp"/>

</shape>

MainActivity.java

![package com.kore.layoutdemo;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;

/**
 * @author ayadav
 *
 */
public class MainActivity extends Activity {


 @Override
 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

    setContentView(R.layout.layout_main);

    RelativeLayout rR2MessageBubble = (RelativeLayout)findViewById(R.id.rR2MessageBubble);

    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) rR2MessageBubble.getLayoutParams();

    //View-1
    View view1 = ((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.layout_component, null);

    rR2MessageBubble.addView(view1);

    //View-2
    View view2 = ((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.layout_component, null);

    TextView txtViewTest = (TextView) view2.findViewById(R.id.txtViewTest);
    txtViewTest.setText("World");

    //params.addRule(RelativeLayout.RIGHT_OF, view1.getId());
    params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, 1);
    view2.setLayoutParams(params);

    rR2MessageBubble.addView(view2);

 }

}

Output

enter image description here

Requirement All i want to add multiple instances of layout_component.xml in layout_main.xml so instead of negative voting please suggest me the way via i can achieve this...thanks

War es hilfreich?

Lösung

You have made a small mistake buddy, you are assigning a wrong LayoutParam to the view2.

Replace,

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) rR2MessageBubble.getLayoutParams();

with

 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(100,100); //or whatever width, height as per your need.

Hope you understand your mistake.

Andere Tipps

Probably because you set the text to "World".

TextView txtViewTest = (TextView) view2.findViewById(R.id.txtViewTest);
txtViewTest.setText("World");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top