在 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

如何避免元素重叠在RelativeLayout上显示软键盘

RelativeLayout 中的 ImageView 与父级不匹配

如何在RelativeLayout中的视图之间添加空间

带有 MapView 的 RelativeLayout 中的视图为空

将视图动态添加到 ScrollView 内的 RelativeLayout