将视图添加到底部的垂直线性布局(以编程方式)
Posted
技术标签:
【中文标题】将视图添加到底部的垂直线性布局(以编程方式)【英文标题】:Add view to a vertical LinearLayout at bottom (programmatically) 【发布时间】:2012-09-05 23:02:07 【问题描述】:我需要以编程方式将视图添加到底部的垂直线性布局。 (是的,我们知道,它在标题中)。
好的:我可以将视图添加到线性布局,这不是问题。但这是为了聊天,所以我需要在底部为显示的每条消息添加视图。我没有找到 LinearLayout 的任何属性来做到这一点。
添加消息:
mHandler.post(new Runnable()
@Override
public void run()
TextView message = new TextView(ChatActivity.this);
String[] splitMessage = text.split(":");
message.setText(splitMessage[0]+"\n"+splitMessage[1]);
message.setGravity(Gravity.LEFT);
message.setMaxWidth(200);
message.setBackgroundColor(getResources().getColor(android.R.color.tertiary_text_light));
message.setTextColor(getResources().getColor(android.R.color.black));
message.setSingleLine(false);
mLayout.addView(message);
);
chat_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/live_obs_mainLayout"
android:layout_
android:layout_
android:background="@drawable/empty"
android:orientation="vertical" >
<ScrollView
android:id="@+id/chat_layout"
android:layout_
android:layout_
android:layout_weight="10" >
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical"
android:isScrollContainer="tue"
>
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_
android:layout_
android:layout_weight="1"
android:gravity="bottom"
android:orientation="horizontal" >
<EditText
android:id="@+id/edit_chat"
android:layout_
android:layout_
android:layout_gravity="left|center_vertical"
android:layout_weight="5" />
<Button
android:id="@+id/chat_submit"
android:layout_
android:layout_
android:layout_gravity="right|center_vertical"
android:onClick="onSubmit"
android:text="OK" />
</LinearLayout>
</LinearLayout>
【问题讨论】:
【参考方案1】:你可以像这样务实地做,这只是一个例子。您可能希望基于此更改您的代码。
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.mylayout);
TextView txt1 = new TextView(MyClass.this);
LinearLayout.LayoutParams layoutParams =
(RelativeLayout.LayoutParams) txt1.getLayoutParams();
layoutParams.addRule(LinearLayout.BOTTOM, 1);
txt1.setLayoutParams(layoutParams);
linearLayout.addView(txt1);
【讨论】:
好吧,事实上我的问题很愚蠢,因为视图已经添加到线性布局的底部。我只需要将我的 LinearLayout 与 RelativeLayout 放在屏幕底部,并在出现新消息时调整它的大小。我累了...但是感谢您的帖子,因为它可以帮助我理解这一点:)以上是关于将视图添加到底部的垂直线性布局(以编程方式)的主要内容,如果未能解决你的问题,请参考以下文章
将编程创建的视图垂直添加到滚动视图中(iOS 中的线性布局)