У меня есть ListView
с настраиваемой компоновкой строк, каждая из которых состоит из 6 TextView
виджетов по горизонтали.
Каждая строка шире, чем экраны большинства телефонов, даже в ландшафтном режиме.
Но на некоторых планшетах высокого класса ширина строки короче. чем ширина экрана в альбомной ориентации.
Как определить, что экран шире строки ListView
, а затем изменить ширину последнего виджета TextView
, чтобы он соответствовал ширине экрана?
Я не хочу делать строки шире по умолчанию, потому что они будут слишком широкими для обычных устройств.
Я попытался проверить ширину в ListView
адаптер getView()
, но там все ширины равны 0, даже ширина convertView
, событие после инфляции макета.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/log_time"
android:layout_width="135dp"
android:layout_height="wrap_content"
android:padding="3dp"
android:textSize="14sp" >
</TextView>
<TextView
android:id="@+id/log_level"
android:layout_width="20dp"
android:layout_height="wrap_content"
android:padding="3dp"
android:textSize="14sp" >
</TextView>
<TextView
android:id="@+id/log_pid"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:padding="3dp"
android:textSize="14sp" >
</TextView>
<TextView
android:id="@+id/log_tid"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:padding="3dp"
android:textSize="14sp" >
</TextView>
<TextView
android:id="@+id/log_tag"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:padding="3dp"
android:maxLines="1"
android:singleLine="true"
android:ellipsize="end"
android:textSize="14sp" >
</TextView>
<TextView
android:id="@+id/log_message"
android:layout_width="600dp"
android:layout_height="wrap_content"
android:padding="3dp"
android:maxLines="1"
android:singleLine="true"
android:ellipsize="end"
android:textSize="14sp" >
</TextView>
</LinearLayout>