Android TextView 在屏幕右侧被截断

标签 android android-layout textview

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

最佳答案

您可以将宽度设置为 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,以正确的方式缩放每个资源。

关于Android TextView 在屏幕右侧被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16779609/

相关文章:

android - 非 Activity 时如何访问窗口?

android - 水平居中对齐布局中的两个 TextView

android - ListView 占用了 LinearLayout 中的所有空间

java - 如何在 TextView 的扩展类中正确绘制文本?

android - 如何在 TextView 中的特定行获取文本

java - android java同时从不同线程读/写textview

android - 从标记中获取其他值

java - 任务 ':app:dexDebug' 执行失败。 com.android.ide.common.process.ProcessException : org. gradle.process.internal.ExecException

java - 从视频帧读取数据

android - 如何不在每个屏幕上显示 Android 应用程序名称