在 RelativeLayout 上添加一些 TextView
Posted
技术标签:
【中文标题】在 RelativeLayout 上添加一些 TextView【英文标题】:Adding a few TextViews on RelativeLayout 【发布时间】:2015-05-12 10:02:43 【问题描述】:我正在尝试以编程方式将许多 TextView 添加到 RelativeLayout,但是当 TextView 到达显示的末尾时,我无法执行此操作,然后 TextView 在新行中膨胀。
相对布局:
<RelativeLayout
android:layout_
android:layout_
android:orientation="horizontal"
android:id="@+id/tag_cloud"
android:padding="10dp">
</RelativeLayout>
代码:
if (categoriesCursor.moveToFirst())
do
TextView tagElement = (TextView) getLayoutInflater().inflate(R.layout.tag, null);
tagElement.setText(categoriesCursor.getString(2));
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
llp.setMargins(0, 0, pixels, pixels); // llp.setMargins(left, top, right, bottom);
tagElement.setLayoutParams(llp);
tagCloudLayout.addView(tagElement);
while (categoriesCursor.moveToNext());
tag.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:background="#ffffff"
android:textColor="#ff000000"
android:textStyle="bold"
android:paddingLeft="5dp"
android:paddingRight="5dp"/>
谢谢
【问题讨论】:
如果您使用RelativeLayout
,您的视图在添加时会相互重叠。所以我建议使用LinearLayout
方向垂直。
【参考方案1】:
不清楚你在问什么,但如果我以正确的方式理解你,你只想有一行 textViews,或者?另外,您使用了错误的布局参数,如果您想将一些视图并排添加到 relativeLayout,我想您会得到它:
RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT, 1.0f);
最后一个参数代表布局权重属性。使用 LayoutWeight 和 MATCH_PARENT,所有视图都将以相同的大小绘制。
【讨论】:
【参考方案2】:考虑使用包含 TextView 的 ListView,这样您就可以利用单元格重用等优势。这是一个很好的 tutorial
【讨论】:
【参考方案3】:最后我把一个LinearLayout垂直放置在LinearLayouts里面水平放置三个TextView。不是最好的解决方案,但它对我有用。
【讨论】:
以上是关于在 RelativeLayout 上添加一些 TextView的主要内容,如果未能解决你的问题,请参考以下文章
RelativeLayout 中的 ImageView 与父级不匹配