1

以下 xml 中的日期 TextView 在屏幕右侧被截断。我怎样才能解决这个问题?

另外我不确定我是否做对了,但是加密和签名的 ImageViews 永远不会同时出现,它要么是要么。

<LinearLayout
                android:id="@+id/date_container"
                android:layout_width="80dip"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginTop="@dimen/date_margin_top"
                android:orientation="horizontal"
                >
                <ImageView
                    android:id="@+id/encrypted"
                    android:layout_width="36dip"
                    android:layout_height="16dip"
                    android:layout_gravity="top"
                    android:src="@drawable/badge_encrypted" />
                <ImageView
                    android:id="@+id/signed"
                    android:layout_width="36dip"
                    android:layout_height="16dip"
                    android:layout_gravity="top"
                    android:src="@drawable/badge_signed" />
                <ImageView
                    android:id="@+id/paperclip"
                    android:layout_width="36dip"
                    android:layout_height="16 dip"
                    android:layout_gravity="top"
                    android:src="@drawable/ic_badge_attachment" />
                <TextView
                    android:id="@+id/date"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textSize="@dimen/date_font_size"
                    android:text="@string/long_string"
                    android:lines="1" />
            </LinearLayout>
4

1 回答 1

1

您可以将宽度设置为 match_parent 并添加 Layout_weight,而不是设置固定宽度:

     <LinearLayout
            android:id="@+id/date_container"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginTop="@dimen/date_margin_top"
            android:orientation="horizontal"
            >
            <ImageView
                android:id="@+id/encrypted"
                android:layout_width="match_parent"
                android:layout_weight="1"
                android:layout_height="16dip"
                android:layout_gravity="top"
                android:src="@drawable/badge_encrypted" />
            <ImageView
                android:id="@+id/signed"
                android:layout_width="match_parent"
                android:layout_height="16dip"
                android:layout_weight="1"
                android:layout_gravity="top"
                android:src="@drawable/badge_signed" />
            <ImageView
                android:id="@+id/paperclip"
                android:layout_width="match_parent"
                android:layout_height="16dip"
                android:layout_weight="1"
                android:layout_gravity="top"
                android:src="@drawable/ic_badge_attachment" />
            <TextView
                android:id="@+id/date"
                android:layout_width="match_parent"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:textSize="@dimen/date_font_size"
                android:text="@string/long_string"
                android:lines="1" />
        </LinearLayout>

但这取决于你想要什么。通常,您必须为多屏幕支持定义不同的布局资源。在此示例中,您还必须为每个 imageView 设置 scaleType,以正确缩放每个资源。

于 2013-05-27T19:52:32.047 回答