LayoutInflater不起作用

时间:2014-04-21 19:36:35

标签: android layout

我正在构建一个聊天应用程序,所以我想在当前视图中添加元素(用户图片和消息)。问题出在showMessage函数中,没有发生但没有错误。

这是我的代码:

ChatActivity - > showMessage:

RelativeLayout rly = new RelativeLayout(ChatActivity.this);
rly.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
LayoutInflater inflater = getLayoutInflater();
View viewToAppend = inflater.inflate(R.layout.messages,null);
rly.addView(viewToAppend);

消息XML:          

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/fede" />

 <TextView
     android:id="@+id/textView1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_centerVertical="true"
     android:layout_marginLeft="10dp"
     android:layout_toRightOf="@+id/imageView1"
     android:text="messagetext" />

</RelativeLayout>

更新

添加setContentView(rly);工作,但用“xml loaded”替换所有内容,我想追加它,而不是全部替换。

3 个答案:

答案 0 :(得分:0)

你可能会尝试代码。比如

 LayoutInflater inflater = (LayoutInflater) this
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

可能会成功运作。祝你好运!

答案 1 :(得分:0)

如果你想为inflater添加一个布局,你可以使用inflate方法,并使用布局id作为参数。


    View v = ((LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE )).inflate(R.layout.info_window_adapter_layout, null);

在上下文中对活动上下文的引用

答案 2 :(得分:0)

您创建一个新的RelativeLayout并将消息视图添加到它,但您从不将RelativeLayout附加到内容视图。在布局xml中为您的主布局指定一个ID(例如&#39; main_layout&#39;),然后添加:

RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.main_layout);
mainLayout.addView(rly);