Android, как разместить вид прокрутки в середине экрана: - PullRequest
1 голос
/ 11 июня 2011

Я пытаюсь создать макет экрана следующего содержания:

  1. Строка с некоторым TextView в нем
  2. Представление прокрутки, где действия пользователя будут добавлять или удалятьВид из
  3. Линия кнопок.

У меня нет проблем с 1. или 3. Но 2. доставляет мне неприятности.Моя схема:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/mainX"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" 
  android:orientation="vertical">
  <LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/labels" 
    android:layout_weight="1">
  <!--Some text view of various sizes -->
  </LinearLayout>
  <ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/dataScroll">
    <LinearLayout 
      android:id="@+id/dataShow" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content">
    </LinearLayout>
  </ScrollView>
  <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/buttons" 
    android:layout_weight="1">
  <!--some buttons-->
  </LinearLayout>
</LinearLayout>

Когда я запускаю программу, строка кнопок находится в середине экрана, а когда я добавляю элемент на экран (используя addView на макете dataShow), первыйдобавляется без проблем, но после этого я не могу сказать, что происходит.

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Попробуйте использовать RelativeLayout, затем выровняйте верхний колонтитул и нижний колонтитул внизу. Установите нижний край ScrollView.

<?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/header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:paddingBottom="10dp"
        android:paddingTop="10dp"
        android:text="text"
        android:textAlignment="center"
        android:layout_centerHorizontal="true"
        android:layout_alignParentTop="true"/>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/header"
        android:layout_above="@+id/footer"
        android:paddingBottom="100dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="center main content"
            android:textAlignment="center"
            android:layout_centerHorizontal="true"
            android:layout_alignParentTop="true"/>

    </ScrollView>

    <RelativeLayout
        android:id="@+id/footer"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="@color/colorPrimary"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="text"
            android:textAlignment="center"
            android:layout_centerHorizontal="true"
            android:layout_alignParentTop="true"/>

    </RelativeLayout>
</RelativeLayout>
0 голосов
/ 12 июня 2011

Я не совсем уверен, что вы пытаетесь сделать.

Кажется, вы хотите динамически добавлять элементы в макет dataShow.Вместо использования ScrollView, содержащего LinearLayout, вы должны использовать ListView (вертикальная прокрутка) или Gallery (горизонтальная прокрутка) для макета dataShow.Это обеспечит функциональность прокрутки и позволит вам динамически добавлять элементы в список / галерею.

...