【问题标题】:Linear Layout shorten text in textview线性布局缩短文本视图中的文本
【发布时间】:2018-01-11 11:54:58
【问题描述】:

我有一个状态栏,在线性布局中连续包含 6 个元素。这在具有高分辨率的较新显示器上看起来不错。但是当我在旧智能手机上启动应用程序时,只会显示状态栏中 Textview 的第一个文本。 imageViews 被切断,状态栏变得更高,没有额外的内容。

我想要的是,如果内容不合适,第一个 textView 中的文本会被缩短,以便 ImageViews 都可以显示。这可能吗?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="2dp"
    android:gravity="right|center_vertical"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/statusbar_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:text="Text der Statusbar" />

    <TextView
        android:id="@+id/statusbar_text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:text="TEXT1" />

    <ImageView
        android:id="@+id/some_state0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/stat_some_state0" />

    <ImageView
        android:id="@+id/some_state1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp" 
        android:src="@drawable/stat_some_state1" />

    <ImageView
        android:id="@+id/some_state2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp" 
        android:src="@drawable/stat_some_state2" />

    <ImageView
        android:id="@+id/some_state3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp" 
        android:src="@drawable/stat_some_state3" />

</LinearLayout>

【问题讨论】:

  • 尝试对关系使用相对布局,或者使用带权重的线性布局(每个视图添加权重)。

标签: android android-layout android-linearlayout


【解决方案1】:

为所有元素添加权重。如果权重相等,则布局将平均分配。如果重量是其他人的两倍,那么除法将是两倍。如果 orientationvertical 并且你有 给定重量 那么高度应该是 0dp 如果它是 horizontal ,宽度应该是 0dp

?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="2dp"
    android:gravity="right|center_vertical"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/statusbar_text"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:layout_weight="1"
        android:text="Text der Statusbar" />

    <TextView
        android:id="@+id/statusbar_text1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingLeft="5dp"
        android:text="TEXT1" />

    <ImageView
        android:id="@+id/some_state0"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/stat_some_state0" />

    <ImageView
        android:id="@+id/some_state1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingLeft="5dp" 
        android:src="@drawable/stat_some_state1" />

    <ImageView
        android:id="@+id/some_state2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingLeft="5dp" 
        android:src="@drawable/stat_some_state2" />

    <ImageView
        android:id="@+id/some_state3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingLeft="5dp" 
        android:src="@drawable/stat_some_state3" />

</LinearLayout>

【讨论】:

【解决方案2】:

你应该让你的layout 像这样。在视图中添加weight 将修复它们的widths。所以无论text length,它都不会打扰你的imageViews

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:gravity="right|center_vertical"
android:orientation="horizontal">

<TextView
    android:id="@+id/statusbar_text"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:paddingLeft="5dp"
    android:text="Text der Statusbar" />

<TextView
    android:id="@+id/statusbar_text1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:paddingLeft="5dp"
    android:text="TEXT1" />

<ImageView
    android:id="@+id/some_state0"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.5"
    android:src="@drawable/stat_some_state0" />

<ImageView
    android:id="@+id/some_state1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.5"
    android:paddingLeft="5dp"
    android:src="@drawable/stat_some_state1" />

<ImageView
    android:id="@+id/some_state2"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.5"
    android:paddingLeft="5dp"
    android:src="@drawable/stat_some_state2" />

<ImageView
    android:id="@+id/some_state3"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.5"
    android:paddingLeft="5dp"
    android:src="@drawable/stat_some_state3" />

</LinearLayout>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 2023-03-30
    • 1970-01-01
    • 2020-06-09
    相关资源
    最近更新 更多