Android Listview Row Layout - PullRequest
       1

Android Listview Row Layout

1 голос
/ 02 октября 2010

Я разрабатываю то, что, как я думал, будет простой компоновкой строк в виде списка, но у меня возникли некоторые проблемы, чтобы правильно выстроить свои представления.Есть 4 TextViews, каждый из которых использует layout_weight внутри LinearLayout для соответствующего размера.Однако я не могу понять, как их последовательно выровнять, чтобы каждый TextView начинался с той же позиции, что и выше и ниже.

</p>

<pre><code><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#AAAAAA88">

    <TextView
        android:id="@+id/quality"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:layout_gravity="center_vertical|right"
        android:textColor="#ffffff"
        android:padding="5px"
    />

    <TextView
        android:id="@+id/route_name"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="3"
        android:layout_gravity="center_vertical|right"
        android:textColor="#ffffff"       
        android:padding="5px"           
    />

    <TextView
        android:id="@+id/route_grade"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:layout_gravity="center_vertical|right"
        android:textColor="#ffffff"       
        android:padding="5px"           
    />

    <TextView
        android:id="@+id/route_distance"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:layout_gravity="center_vertical|right"
        android:textColor="#ffffff"       
        android:padding="2px"           
    />        

</LinearLayout>

Мои попытки использовать тег: gravity, похоже, не работают.Является ли LinearLayout неправильным подходом здесь?

В качестве редактирования я продвигаюсь вперед, используя определенные значения ширины в провалах.Теперь, чтобы проверить, выглядит ли он одинаково на разных экранах.

Ответы [ 2 ]

0 голосов
/ 03 октября 2013

вы можете попробовать использовать RelativeLayout. Попробуйте разместить 4 из TextViews относительно, 3 могут иметь фиксированную ширину в dp, а 4-й может занять оставшуюся часть доступного пространства. таким образом, каждый просмотр текста будет начинаться с фиксированной позиции каждый раз.

что-то вроде:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView 
    android:id="@+id/text_1"
    android:layout_width="60dp"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:gravity="left"
    android:padding="8dp"
    android:text="Text 1"/>
<TextView 
    android:id="@+id/text_2"
    android:layout_width="60dp"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/text_1"
    android:layout_toLeftOf="@+id/text_1"
    android:gravity="left"
    android:padding="8dp"
    android:text="Text 2"/>
<TextView 
    android:id="@+id/text_3"
    android:layout_width="60dp"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/text_1"
    android:layout_toLeftOf="@+id/text_2"
    android:gravity="left"
    android:padding="8dp"
    android:text="Text 3"/>
 <TextView 
    android:id="@+id/text_4"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/text_1"
    android:layout_toLeftOf="@+id/text_3"
    android:layout_alignParentLeft="true"
    android:gravity="left"
    android:padding="8dp"
    android:text="Text 4"/>

</RelativeLayout>
0 голосов
/ 23 декабря 2010

Гравитация распределяет остаток пространства, доступного после минимальных ограничений, а не всего пространства.

Так что выровняйте разные строки сверху и снизу, убедитесь, что оставшееся пространство в каждой строке равно. Хороший способ сделать это - жестко прописать минимальное пространство, необходимое каждому элементу:

android:layout_weight="2"
android:layout_width="1dip"

Сделайте каждый TextView в каждой строке шириной в 1 дюйм и разделите оставшееся пространство в соответствии с весом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...