以编程方式在Relativelayout中连续对齐3个拉伸的Textview

时间:2014-05-14 06:45:07

标签: android-layout relativelayout textview android

请不要将此问题标记为重复。为什么?因为我要解释它为什么不是。

以下是我所做的步骤:

  1. 创建RelativeLayout
  2. 为wrap_content和wrap_content
  3. 创建LayoutPArams
  4. 创建第一个TextView,给它一个id
  5. 为第一个textview创建LayoutParams并将其添加到RelativeLAyout
  6. 创建第二个TextView
  7. 为它创建了LayoutParams,添加了一条规则为right_Of的id_for_first_tetview
  8. 第三个Textview的相同步骤,除了它是第二个textview的右侧
  9. 这里的问题是:第一个文本视图的文本延伸到第二行,当文本延伸到第二行时,这个宽度,即第一个textview占据了整个宽度,因此另一个textview要么重叠或低于它。 让我用图表来证明:

    旺旺:

    This is what I want

    发生:

    enter image description here

    简而言之,有没有办法将文本视图保存在一行中,即使一个textview占用两行,第二个textview也可以在文本视图结束的文本结束后立即开始?

    提前谢谢你。我真的可以使用一些帮助。

1 个答案:

答案 0 :(得分:0)

这可以通过LinearLayoutweight轻松完成。

方法1 - XML (提供所需的填充或边距)

<LinearLayout
    android:layout_width="match_parent"
    android:weightSum="3"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="0px"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="TextViewTextViewTextViewTextView" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="0px"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="0px"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>

方法2 - 以编程方式(提供所需的填充或边距)

tv2 = (TextView)findViewById(R.id.textView2);
tv3 = (TextView)findViewById(R.id.textView3);
tv4 = (TextView)findViewById(R.id.textView4);

android.widget.LinearLayout.LayoutParams params = new android.widget.LinearLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1f);

tv2.setLayoutParams(params);
tv3.setLayoutParams(params);
tv4.setLayoutParams(params);