У меня проблемы с получением результатов макета графического интерфейса, которые я хочу в приложении для Android.
Краткое описание того, что я хочу:
Графический интерфейс должен включать два TextView. и четыре кнопки.
Четыре кнопки должны быть расположены горизонтально, все в одном ряду, и закреплены в правом нижнем углу экрана.
Первый из двух TextView должен начинаться в верхней части экрана, при этом текстовое содержимое может варьироваться от одной строки до многих десятков строк - больше, чем поместится на экране без прокрутки. Поэтому для просмотра всего содержимого иногда требуется прокрутка. Даже когда прокрутка необходима, кнопки не должны участвовать в прокрутке: они всегда должны оставаться в одной строке в правом нижнем углу экрана. Когда прокрутка необходима, прокручиваемый текст всегда должен находиться над кнопками - кнопки не должны перекрывать текст.
Второй из двух TextView должен появляться непосредственно под первым TextView и обычно добавляет только один или две строки до общей длины текста. Когда необходима прокрутка, второй TextView должен прокручиваться с первым TextView, но все, что я пробую с прокруткой текста, всегда приводит к тому, что текст прокручивается за кнопками - кнопки накладываются на текст. Я не придумал, чтобы кнопки выровнялись по нижнему правому краю.)
Если кто-нибудь хочет помочь мне разобраться в этом, приведенный ниже пример макета xml является отправной точкой для разговора, но он определенно не может достичь Целевой результат, как показано на следующих снимках экрана, сгенерирован с использованием того же примера макета 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="wrap_content">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Text View 1. Text varies from a few lines to many more lines than what fits on the screen. Scrolling is necessary to see it all." />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Text View 2. Short text entry sits below Text View 1." />
</LinearLayout>
</ScrollView>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/button_1"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="Button 1" />
<Button
android:id="@+id/button_2"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="Button 2" />
<Button
android:id="@+id/button_3"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="Button 3" />
<Button
android:id="@+id/button_4"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="Button 4" />
</LinearLayout>
</LinearLayout>
1.5_API3_HVGA_Horizontal_MDPI - short_text:
Проблема: кнопки должны выровняться по нижнему правому краю экрана. экран.
-
1.5_API3_HVGA_Vertical_MDPI - short_text:
Проблема: кнопки должны выровняться по нижнему правому краю экрана.
-
1.5_API3_QVGA_240x320_MDPI - short_text:
Проблема: 4-я кнопка не работает. Предпочитайте переносить текст на первых трех кнопках при необходимости, оставляя достаточно места для отображения четвертой кнопки.
-
1.5_API3_QVGA_320x240_MDPI - short_text:
Проблема: кнопки должны выровняться по нижнему правому краю экрана.
-
1.6_API4_QVGA_Horizontal_LDPI - long_text:
Проблема: когда текст почти заполняет экран, ряд кнопок разбивается. Ряд кнопок не должен быть разбит и должен быть закреплен в правом нижнем углу экрана. Текст должен прокручиваться над кнопками.
-
1.6_API4_QVGA_Horizontal_LDPI - short_text:
Проблема: кнопки должны выровняться по правому нижнему краю экрана.
-
1.6_API4_QVGA_Horizontal_LDPI - very_long_text, полоса прокрутки вверху:
Проблема: Кнопок нет на экране. Они должны быть зафиксированы в правом нижнем углу экрана.
-
1.6_API4_QVGA_Horizontal_LDPI - very_long_text, scrollbar внизу:
Проблема: кнопки не находятся где-либо, хотя полоса прокрутки текста находится на дно. Они должны быть закреплены в правом нижнем углу экрана.
-
1.6_API4_QVGA_Vertical_LDPI - short_text:
Проблема: кнопки должны быть выровнены по правому нижнему краю экрана.
-
Есть какой-нибудь совет?
-
Дополнительная информация: когда я пытаюсь использовать RelativeLayout и фиксирую кнопки внизу экрана с помощью android: layout_alignParentBottom = "true"
, тогда мой проблема в том, что я не знаю, как исправить нижнюю часть прокрутки с помощью верхней части кнопок. Используется android: layout_alignBottom = "@ id / buttons"
просто выравнивает нижнюю часть области прокрутки с нижней частью кнопок, но затем кнопки перекрывают текст, например:
-
Обновление: проблема фиксации кнопок в правом нижнем углу , с прокручивающимся текстом над кнопками решена.
Вот измененный XML макета, который работает до сих пор (вставьте больше текста в текстовое представление 1, если вы хотите видеть прокрутку):
<?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:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Text View 1. Text varies from a few lines to many more lines than what fits on the screen. Scrolling is necessary to see it all." />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Text View 2. Short text entry sits below Text View 1." />
</LinearLayout>
</ScrollView>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="right">
<Button
android:id="@+id/button_1"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="Button 1" />
<Button
android:id="@+id/button_2"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="Button 2" />
<Button
android:id="@+id/button_3"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="Button 3" />
<Button
android:id="@+id/button_4"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:text="Button 4" />
</LinearLayout>
</LinearLayout>
У меня осталась проблема, для которой Выложу новый вопрос.