代码之家  ›  专栏  ›  技术社区  ›  Paul

Android布局文本视图右对齐最大尺寸

  •  0
  • Paul  · 技术社区  · 7 年前

    enter image description here

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

    在第二种情况下,我希望成功。

    我必须把文本视图和文本:01.35放在右边,从图片上看,考虑到文本的最大扩展,可以包含上面和下面不同的文本视图。

    我想了想,试了试,但没能解决这个问题。

    有什么建议吗?

    <?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>
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   takecare    7 年前

    尝试设置父LinearLayout(包含两个文本视图的那一个)的宽度,以匹配_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>
    

    我建议你也调查一下你。可能更适合你的要求。

        2
  •  0
  •   Aaron    7 年前

    您应该能够通过将宽度设置为0,将权重设置为1来实现这一点 username 文本视图,并扩展其容器的宽度以匹配父对象:

    <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>
    

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

    推荐文章