Линейный макет сокращает текст в текстовом представлении
У меня есть строка состояния с 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>
2 ответа
Добавьте вес для всех элементов. Если веса равны, макет будет разделен поровну. если вес вдвое больше остальных, тогда деление будет вдвое больше. если orientation
является vertical
и вы дали вес, тогда рост должен быть 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>
Ты должен сделать свой 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>