Android自定义滚动视图,底部有广告

时间:2011-08-25 06:50:34

标签: java android layout

我有一个内部自定义视图设置,这部分似乎工作得很好 - 我想知道的是...是否可以限制自定义视图的高度类似于Swing中的某些内容您在边框布局的中心有一个滚动窗格,在边框布局的南边有另一个面板。

我在北方有4个文本视图,然后是我在中心的自定义滚动视图,我希望应用程序在底部保持静态

我尝试在xml中执行以下3 :(伪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 :(得分:0)

如果我理解正确,请尝试#1使用权重= 1和ScrollView上的0dip高度:

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>