Android пользовательский вид прокрутки с объявлением внизу - PullRequest
0 голосов
/ 25 августа 2011

У меня настроено внутреннее настраиваемое представление, и эта часть, кажется, работает отлично - что мне интересно ... возможно ли ограничить высоту настраиваемого представления, аналогично чему-то в Swing, гдеу вас есть панель прокрутки в центре макета границы и еще одна панель на юге макета границы.

У меня есть 4 вида текста на севере, затем мой пользовательский вид прокрутки в центре, и яМне бы хотелось, чтобы приложение оставалось статичным внизу

Я попытался сделать следующие 3 в xml: (псевдо-xml - большинство удалено для удобства чтения)

1.

<LinearLayout ...> // vertical
    <TextView ...></TextView>
    <LinearLayout ...> // horizontal
        <TextView ...></TextView>
        <TextView ...></TextView>
        <TextView ...></TextView>
        <TextView ...></TextView>
    </LinearLayout>
    <ScrollView...>
        <LinearLayout ...>
            <view class="blah.blah.blah.CustomView" ...>
            </view>
        </LinearLayout>
    </ScrollView>
    <RelativeLayout ...>
        <com.google.ads.AdView ... />
    </RelativeLayout>
</LinearLayout>

2.

<LinearLayout ...> // vertical
    <TextView ...></TextView>
    <LinearLayout ...> // horizontal
        <TextView ...></TextView>
        <TextView ...></TextView>
        <TextView ...></TextView>
        <TextView ...></TextView>
    </LinearLayout>
    <ScrollView...>
        <LinearLayout ...>
            <view class="blah.blah.blah.CustomView" ...>
            </view>
            <RelativeLayout ...>
                <com.google.ads.AdView ... />
            </RelativeLayout>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

3.

<LinearLayout ...> // vertical
    <TextView ...></TextView>
    <LinearLayout ...> // horizontal
        <TextView ...></TextView>
        <TextView ...></TextView>
        <TextView ...></TextView>
        <TextView ...></TextView>
    </LinearLayout>
    <ScrollView...>
        <LinearLayout ...>
            <view class="blah.blah.blah.CustomView" ...>
            </view>
        </LinearLayout>
    </ScrollView>
</LinearLayout>
<LinearLayout ...>
    <com.google.ads.AdView .../>
</LinearLayout>

любая помощь в том, что я могу сделать, чтобы сделать эту работу будет принята с благодарностью

1 Ответ

0 голосов
/ 25 августа 2011

Если я правильно понимаю, попробуйте # 1, используя вес = 1 и рост 0dip на вашем ScrollView:

android:layout_height="0dip"
android:layout_weight="1"
android:fillViewport="true"

Ваш ScrollView автоматически увеличится, чтобы заполнить оставшийся экран, нажавобъявление (RelativeLayout) снизу (при любом размере экрана / ориентации).

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

Portrait

Landscape

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

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:fillViewport="true">

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="10dip"
            android:paddingRight="10dip"
            android:paddingTop="10dip">

            <TextView
                android:id="@+id/edit_name_label"
                android:paddingTop="10dip"
                android:textSize="14sp"
                android:text="Name"
                android:singleLine="true"
                android:textColor="#ffffffff"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />

            <EditText
                android:id="@+id/edit_name_edittext"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:saveEnabled="true"
                android:capitalize="sentences" />

            <TextView
                android:id="@+id/edit_type_label"
                android:textSize="14sp"
                android:text="Type"
                android:singleLine="true"
                android:textColor="#ffffffff"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:paddingTop="5dip" />

            <EditText
                android:id="@+id/edit_type_edittext"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:lines="1"
                android:saveEnabled="true"
                android:capitalize="sentences" />

            <TextView
                android:id="@+id/edit_description_label"
                android:textSize="14sp"
                android:text="Description"
                android:singleLine="true"
                android:textColor="#ffffffff"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:paddingTop="5dip" />

            <EditText
                android:id="@+id/edit_description_edittext"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="top"
                android:scrollbars="vertical"
                android:saveEnabled="true"
                android:capitalize="sentences" />

        </LinearLayout>
    </ScrollView>
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingTop="3dip"
        android:paddingRight="3dip"
        android:paddingLeft="3dip"
        android:background="@drawable/bottom_bar_background">

        <Button
            android:id="@+id/edit_cancelbutton"
            android:text="Cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="20dip"
            android:paddingRight="20dip"
            android:layout_alignParentLeft="true" />

        <Button
            android:id="@+id/edit_savebutton"
            android:text="Save"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="30dip"
            android:paddingRight="30dip"
            android:layout_alignParentRight="true" />
    </RelativeLayout>
</LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...