【问题标题】:How to align two TextView in a LinearLayout in the same line如何在同一行对齐LinearLayout中的两个TextView
【发布时间】:2016-01-27 19:20:08
【问题描述】:

我在 LinearLayout 中有两个 TextView,我想在同一行中将它们一个对齐到左侧(或中心),一个对齐到右侧。这个怎么做?我尝试使用重力,但他们忽略了它。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="TextView" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="right"
    android:text="TextView" />

</LinearLayout>

【问题讨论】:

  • 发布您的代码,以便我们告诉您您的错误在哪里。
  • @Guian 完成,重力已设置,但他们忽略了它。

标签: android android-layout


【解决方案1】:

最简单的方法是将您的LinearLayout 更改为RelativeLayout

您可以使用android:layout_alignParentRight="true"android:layout_alignParentLeft="true"。或将其居中使用android:layout_centerInParent="true"

See here why gravity won't work

您使用的是gravity 而不是layout_gravity,这正是您想要的。 This post should help clarify the difference

The docs 显示您可用的属性。

【讨论】:

    【解决方案2】:

    android:gravity 用于设置视图内内容的重力。但是,在您的情况下,宽度为wrap_content,因此文本视图中的内容无处可去。

    使用RelativeLayoutlayout_width 作为match_parent。然后将 android:layout_alignParentLeft="true"android:layout_alignParentRight="true" 与 textViews 一起使用。

    【讨论】:

      【解决方案3】:

      在第二个文本视图中使用或不使用 android:gravity 并尝试。

      <LinearLayout
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal" >
      
          <TextView
              android:id="@+id/textView1"
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:layout_gravity="left"
              android:layout_weight="1" />
      
          <TextView
              android:id="@+id/textView2"
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:layout_gravity="right"
              android:gravity="right"
              android:layout_weight="1" />
      </LinearLayout>
      

      【讨论】:

        【解决方案4】:

        如果 LinearLayout 为 Vertical,则每行只能放置一个对象。 您可以使用RelativeLayout,或者在一行中放置一个LinearLayout Horizo​​ntal,其中包含textviews

        例如

        <LinearLayout vertical> <LinearLayout horizontal> <textview 1></> <textview 2></> </LinearLayout> </LinearLayout>

        【讨论】:

          【解决方案5】:

          我用 GridLayout 解决了我的所有问题...这是最好的事情,因为您不需要将任何内容对齐...只需将您想要的内容放入矩阵(行、列)...这将允许您以完全包装数据内容的方式可视化所有字段,并且横向显示是完美的!

          【讨论】:

            猜你喜欢
            • 2013-03-12
            • 1970-01-01
            • 2014-10-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多