Android - Есть ли лучший способ сделать этот макет? - PullRequest
0 голосов
/ 07 декабря 2010

Я относительно новичок в Android, и мне интересно, есть ли лучший способ сделать этот макет. Мне нужно 4 метки, расположенные вертикально на левой стороне, с 2 метками большего шрифта на правой стороне. Если вы запускаете это в эмуляторе, это именно то, что мне нужно, но есть ли более предпочтительный способ?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    <TextView 
        android:id="@+id/Label1"
        android:text="Label 1: "
        android:layout_width="200dp"
        android:layout_height="wrap_content"/>
    <TextView 
        android:id="@+id/Label2"
        android:text="Label 2: "
        android:layout_below="@id/Label1"
        android:layout_width="200dp"
        android:layout_height="wrap_content"/>
    <TextView 
        android:id="@+id/Label3"
        android:text="Label 3: "
        android:layout_below="@id/Label2"
        android:layout_width="200dp"
        android:layout_height="wrap_content"/>
    <TextView 
        android:id="@+id/Label4"
        android:text="Label 4: "
        android:layout_below="@id/Label3"
        android:layout_width="200dp"
        android:layout_height="wrap_content"/>
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_toRightOf="@id/Label1">
        <TextView 
            android:id="@+id/Label6"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="Points"
            android:textStyle="bold"
            android:textSize="25sp"
            android:gravity="center_horizontal"/>
        <TextView 
            android:id="@+id/LabelPoints"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="8.6"
            android:textStyle="bold"
            android:textSize="25sp"
            android:gravity="center_horizontal"/>
    </LinearLayout>
</RelativeLayout>

Ответы [ 3 ]

0 голосов
/ 04 июля 2012

Марк, я думаю, что это не очень хороший способ, потому что в Android-документах говорится, что родственник более эффективен. Вы можете найти это здесь: http://developer.android.com/guide/topics/ui/layout/relative.html

"RelativeLayout - очень мощная утилита для проектирования пользователя интерфейс, потому что он может устранить вложенные группы просмотра и сохранить ваши иерархия макета плоская, что повышает производительность. "

0 голосов
/ 11 октября 2012

это также можно сделать с помощью TableLayout. Таким образом, вы можете добавить свои метки в ряд (TableRow). надеюсь, это полезно для вас: -)

0 голосов
/ 23 февраля 2011

Судя по всему, вы можете немного оторваться, если начнете развертывать на разных устройствах с разными размерами экрана / плотностью.

Если бы это была моя проблема, я бы испытал искушение использовать дополнительный LinearLayout и выровнять их, используя взвешивание.См. Ниже ..

Надеюсь, это поможет вам, если еще не слишком поздно:)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="horizontal">
   <LinearLayout android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical"
       android:layout_weight="1">
       <TextView 
           android:id="@+id/Label1"
           android:text="Label 1: "
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"/>
       <TextView 
           android:id="@+id/Label2"
           android:text="Label 2: "
         android:layout_below="@id/Label1"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"/>
       <TextView 
           android:id="@+id/Label3"
           android:text="Label 3: "
           android:layout_below="@id/Label2"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"/>
       <TextView 
           android:id="@+id/Label4"
           android:text="Label 4: "
           android:layout_below="@id/Label3"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"/>
   </LinearLayout>
   <LinearLayout
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       android:orientation="vertical"
       android:layout_toRightOf="@id/Label1">
       <TextView 
           android:id="@+id/Label6"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:text="Points"
           android:textStyle="bold"
           android:textSize="25sp"
           android:gravity="center_horizontal"/>
       <TextView 
           android:id="@+id/LabelPoints"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:text="8.6"
           android:textStyle="bold"
           android:textSize="25sp"
           android:gravity="center_horizontal"/>
   </LinearLayout></LinearLayout>
...