线性布局缩短了textview中的文本

时间:2018-01-11 11:54:58

标签: android android-layout android-linearlayout

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

我想要的是,如果内容不合适,第一个textView中的文本会缩短,因此可以显示所有ImageView。这可能吗?

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

2 个答案:

答案 0 :(得分:0)

为所有元素添加重量。如果权重相等,则布局将被平均分配。如果重量是其他人的两倍,那么除法将是两倍。如果vertical0dp并且给定权重,则身高应为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> }

javascript

答案 1 :(得分:0)

你应该像这样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>