我尝试以编程方式将多个TextView添加到RelativeLayout,但是当TextView到达显示结尾时,我无法执行此操作,接下来TextView会在新行中充气。
RelativeLayout的:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
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_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:textColor="#ff000000"
android:textStyle="bold"
android:paddingLeft="5dp"
android:paddingRight="5dp"/>
由于
答案 0 :(得分:0)
你问的是什么并不是很清楚,但如果我理解你正确的方式,你想只有一行textViews,或者?此外,你正在使用错误的布局参数,如果你想将一些视图并排添加到relativeLayout,我想你会得到它:
RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT, 1.0f);
最后一个参数代表布局权重属性。使用LayoutWeight和MATCH_PARENT,将以相同的大小绘制所有视图。
答案 1 :(得分:0)
考虑使用包含TextView的ListView,这样您就可以利用单元格重用等。这是一个很好的all-in-one bundle
答案 2 :(得分:0)
最后,我将一个LinearLayout垂直定向,并在LinearLayouts内部水平定向,内部有三个TextView。不是最好的解决方案,但它对我有用。