【问题标题】:Android layout textview align right xonsidering the maximum sizeAndroid布局textview右对齐xonsideing最大尺寸
【发布时间】:2019-04-22 07:53:56
【问题描述】:

第一张图片是我设法做到的。

第二个我想成功。

我必须将带有 text: 01.35 的 textview 放在右侧,从图像中可以看出,考虑到文本的最大扩展名,它可能包含其上方和下方的不同 textview。

我想并尝试了 relativLayout,但我无法解决问题。

一些建议?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widgetItemContainer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/round_message"
    android:padding="5dp"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/ch"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="60dp"
        android:orientation="vertical">

        <LinearLayout
            android:id="@+id/container2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Alberto"
                android:textColor="#000000"
                android:textSize="14sp"
                android:textStyle="bold" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="5dp"
                android:orientation="horizontal">

                <TextView
                    android:id="@+id/username"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:singleLine="true"
                    android:text="@angela"
                    android:textColor="#2d2d2d" />

                <TextView
                    android:id="@+id/timestamp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="false"
                    android:text="01.35"
                    android:textColor="#2d2d2d" />

            </LinearLayout>

        </LinearLayout>

        <LinearLayout
            android:id="@+id/container3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/container2"
                android:text="#ulisse Il piacere della scoperta."
                android:textColor="#000"
                android:textSize="14sp" />

        </LinearLayout>

    </LinearLayout>


</RelativeLayout>

【问题讨论】:

    标签: android android-layout layout textview


    【解决方案1】:

    尝试将父 LinearLayout(包含 2 个 TextView 的那个)的宽度设置为 match_parent(以及它的父级 - 即 container2)。然后使用 LinearLayout 的权重为其子级来平衡它们。比如:

    <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:weightSum="1"
                    android:orientation="horizontal">
    
                <TextView
                        android:id="@+id/username"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:text="angela"
                        android:layout_weight="0.8"
                        android:textColor="#2d2d2d"/>
    
                <TextView
                        android:id="@+id/timestamp"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="right"
                        android:gravity="right"
                        android:text="01.35"
                        android:layout_weight="0.2"
                        android:textColor="#2d2d2d"/>
    
            </LinearLayout>
    

    我建议您也研究一下 ConstraintLayout。可能更适合您的要求。

    【讨论】:

      【解决方案2】:

      您应该可以通过在 username 文本视图中将宽度设置为 0 并将重量设置为 1 来做到这一点,并扩展其容器的宽度以匹配父级:

      <LinearLayout
              android:layout_width="match_parent" // Extend the width to match parent
              android:layout_height="wrap_content"
              android:layout_marginRight="5dp"
              android:orientation="horizontal">
      
          <TextView
                  android:id="@+id/username"
                  android:layout_width="0dp" // Set width to 0 and weight to 1
                  android:layout_height="wrap_content"
                  android:layout_weight="1"
                  android:singleLine="true"
                  android:text="@angela"
                  android:textColor="#2d2d2d" />
      
          <TextView
                  android:id="@+id/timestamp"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_alignParentRight="false"
                  android:text="01.35"
                  android:textColor="#2d2d2d" />
      </LinearLayout>
      

      在水平LinearLayout 中宽度为 0 且权重为 1 的视图会将其宽度扩展到最大,但为其下一个子视图留出足够的空间。

      【讨论】:

        猜你喜欢
        • 2012-03-16
        • 2012-01-31
        • 2011-05-17
        • 1970-01-01
        • 2012-11-02
        • 2012-03-19
        • 1970-01-01
        • 2019-07-31
        • 1970-01-01
        相关资源
        最近更新 更多