在RelativeLayout上添加几个TextView

时间:2015-05-12 10:02:44

标签: android textview multiline android-relativelayout programmatically-created

我尝试以编程方式将多个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"/>

由于

3 个答案:

答案 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。不是最好的解决方案,但它对我有用。