Совместное использование текстового макета Android и просмотра списка - PullRequest
2 голосов
/ 17 сентября 2011

Я пытаюсь создать макет приложения домашней автоматизации. В верхней части экрана будет отображаться пользовательский текст состояния (дверь гаража открыта, система снята с охраны и т. Д.). Под текстом статуса будет ссылка для обновления / кнопка / элемент списка. То, что пользователь может щелкнуть, чтобы обновить текст статуса. Внизу будет вид списка, который будет ссылками на другие страницы и ссылками на такие действия, как «Страница безопасности» или «Закрыть дверь гаража» и т. Д. У меня вопрос, как мне настроить макет? Я пробовал несколько LinearLayouts, RelativeLayouts, вложенных макетов и т. Д., И ни один из них не работал до сих пор. Вот мой main.xml на данный момент:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout        
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" >
        <TextView 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:id="@+id/statustext">
        </TextView>
    </LinearLayout>
    <LinearLayout 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" >
        <TextView 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:id="@+id/refresh">
        </TextView>
    </LinearLayout>
    <LinearLayout 
        android:orientation="vertical" 
        android:gravity="center_horizontal" 
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent">
        <ListView 
            android:layout_width="fill_parent" 
            android:id="@android:id/list" 
            android:layout_height="wrap_content">
        </ListView>
    </LinearLayout>
</LinearLayout>

Ссылка на обновление может быть просто элементом списка, но я бы хотел по-другому оформить его, чтобы он выделялся, например, другой цвет шрифта или фона. Или это может быть кнопка. Но это должно быть между statustext и itemlist. И все должно прокручиваться как одно целое.

Возможно ли это? My Layout

Ответы [ 2 ]

1 голос
/ 17 сентября 2011

Добавьте текстовое содержимое вашего статуса в listheaderview.Есть ссылка для этого. Просмотр списка Android с кнопками верхнего и нижнего колонтитула Таким образом, весь список будет прокручиваться с текстом вашего статуса.

1 голос
/ 17 сентября 2011

Это работает?

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

<ScrollView android:id="@+id/ScrollView01"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">

   <LinearLayout android:gravity="center|center_vertical"
    android:orientation="vertical" android:layout_height="fill_parent" android:layout_width="fill_parent">
    <TextView 
            android:gravity="center_horizontal"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:text="status" 
        android:id="@+id/statustext">
    </TextView>
    <TextView 
            android:gravity="center_horizontal"
        android:layout_height="wrap_content"
        android:text="refresh"
        android:id="@+id/refresh" android:layout_width="fill_parent" android:layout_gravity="fill_horizontal">
    </TextView>
    <ListView 
            android:gravity="center_horizontal"
        android:layout_width="fill_parent" 
        android:id="@android:id/list" 
        android:layout_height="wrap_content">
    </ListView>
    </LinearLayout>
    </ScrollView>
</LinearLayout>

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

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