【问题标题】:Align a TextView right to the Horizontal Center将 TextView 右对齐到水平中心
【发布时间】:2015-10-13 23:29:27
【问题描述】:

如何将TextView 右对齐到RelativeLayout 中的水平中心?

好的。按照有人要求我说得更清楚。

`android:layout_centerHorizontal="true"`

这会设置如下图所示的文本,我不需要。

我已经通过使用额外的TextView 让它工作了。像这样:

<TextView
    android:id="@+id/textViewHelper"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

 <TextView
    android:id="@+id/textViewMyText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textViewHelper"
    android:layout_alignParentTop="true"
    android:text="My Text" /> 

【问题讨论】:

  • 你能清楚地说明你到底想要什么
  • 你在xml设计器中拖到右边就行了,使用Relativelayout的重点是可以相对于其他views位置放置views。或者您可以使用线性布局并为小部件分配重力
  • @insomniac 是的,我明白了。我想可能有一些我错过的选择。就像我们可以选择直接对齐中心而无需任何其他视图的帮助。

标签: android text-alignment android-relativelayout


【解决方案1】:

试试这个属性android:layout_centerHorizontal="true"

<TextView
        android:layout_centerHorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text View "/>

【讨论】:

    【解决方案2】:

    您可以使用LinearLayout 执行此操作。但是您必须使用 1 个额外的视图。 我不知道任何其他选择。

    代码sn-p

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    
        <TextView
            android:id="@+id/textView2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="TextView" />
    
    </LinearLayout>
    

    截图

    【讨论】:

    • 是的,这正是我现在让它工作的方式。所以没有办法直接做这个?
    • 就像我向你展示的那样。使用线性布局和额外的视图
    • @andro:如果你使用RelativeLayout,你将无法处理。
    • 线性布局在这里不是一个选项。我有其他视图取决于此 textView 的位置
    【解决方案3】:

    您可以在RelativeLayout 中间使用LinearLayout 就像一条不可见的线,并对齐您的项目toRightOf

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
    </LinearLayout>
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/linearLayout"
    
    </RelativeLayout>
    

    希望对你有帮助

    【讨论】:

      【解决方案4】:

      好的,试试这个

      <TextView
              android:id="@+id/textView1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_centerHorizontal="true"
      
              android:layout_alignParentRight="true"
              android:text="Large Text" />
      

      这使得小部件与父级的右侧对齐,其他对齐选项显然是:- android:layout_alignParentLeft="true",android:layout_alignParentTop="true" 和 android:layout_alignParentBottom="true"

      【讨论】:

        【解决方案5】:

        创建水平方向的LinearLayout 添加两个视图,每个视图的权重为 50%。

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        
            <LinearLayout android:orientation="horizontal"
                android:layout_width="match_parent"                    
                android:weightSum="2" android:layout_height="match_parent">
        
                <View android:layout_width="0dp" 
                    android:layout_weight="1" 
                    android:layout_height="match_parent"/>
        
                <TextView android:layout_width="0dp"
                    android:layout_weight="1" 
                    android:layout_height="wrap_content"
                    android:text="My Text"/>
            </LinearLayout>
        
        </RelativeLayout>
        

        【讨论】:

          【解决方案6】:

          使用 RelativeLayout 的另一个选项:使用带有 centerHorizo​​ntal 的视图作为 TextView 的锚。

          <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent" >
          
              <Space
                  android:id="@+id/anchor"
                  android:layout_width="0dp"
                  android:layout_height="0dp"
                  android:layout_centerHorizontal="true" />
          
              <TextView
                  android:id="@+id/textView1"
                  android:layout_width="0dp"
                  android:layout_height="wrap_content"
                  android:layout_alignParentRight="true"
                  android:layout_toRightOf="@+id/anchor"
                  android:text="Hello World" />
          
              <!-- more views -->
          </RelativeLayout>
          

          如果您想支持从右到左的布局,请改用android:layout_alignParentEnd="true" 和android:layout_toEndOf="@+id/anchor"。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-13
            • 2012-09-12
            • 2013-01-08
            • 2013-06-01
            • 1970-01-01
            • 2019-12-02
            相关资源
            最近更新 更多