1

我正在按照以下设计开发 android 应用程序。

测试

我想将滚动视图的高度设置为剩余的屏幕大小(在被页眉、页脚和其他文本占据之后),尽管列表视图中没有任何内容。当项目添加到列表视图(动态)时,我想滚动它。但是现在当列表视图中没有项目时,我无法设置初始高度。

下面是我的布局文件。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_color"
tools:context=".HomeActivity"
android:weightSum="1.0" >

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:background="@color/header_color"
    android:paddingBottom="@dimen/header_vertical_margin"
    android:paddingLeft="@dimen/header_horizontal_margin"
    android:paddingRight="@dimen/header_horizontal_margin"
    android:paddingTop="@dimen/header_vertical_margin"  >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:orientation="horizontal"
        android:weightSum="1.0" >

        <ImageButton
            android:id="@+id/ImageButton03"
            android:layout_width="62dp"
            android:layout_height="match_parent"
            android:layout_gravity="left"
            android:layout_weight="0.2"
            android:adjustViewBounds="true"
            android:background="@android:color/transparent"
            android:gravity="left"
            android:scaleType="centerInside"
            android:src="@drawable/title_left_img" />


        <ImageView
            android:id="@+id/headerImg"
            android:layout_width="139dp"
            android:layout_height="match_parent"
            android:layout_weight="0.7"
            android:scaleType="centerInside"
            android:src="@drawable/header_img"
            android:layout_margin="5dp" />

        <ImageButton
            android:id="@+id/ImageButton04"
            android:layout_width="38dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.1"
            android:adjustViewBounds="true"
            android:background="@android:color/transparent"
            android:scaleType="centerInside"
            android:src="@drawable/title_right_img" />

    </LinearLayout>

</RelativeLayout>

<RelativeLayout
    android:id="@+id/relativeLayout2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/relativeLayout1"
    android:paddingBottom="@dimen/body_vertical_margin"
    android:paddingLeft="@dimen/body_horizontal_margin"
    android:paddingRight="@dimen/body_horizontal_margin"
    android:paddingTop="@dimen/body_vertical_margin" >

    <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/dayText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="TextView"
        android:textColor="@color/day_color"
        android:textSize="@dimen/day_size"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/dateTimeText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="TextView | TextView"
        android:textColor="@color/time_date_color"
        android:textSize="@dimen/date_time_size"
        android:textStyle="normal" />

    <ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="0px"
    android:background="@drawable/rounced_rect"
    android:layout_weight="1"
    android:fillViewport="true" >


        <ListView
            android:id="@+id/list_tracking"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:dividerHeight="1dp"
            android:scrollingCache="true" >

        </ListView>

    </ScrollView>
    </LinearLayout>
</RelativeLayout>

<RelativeLayout
    android:id="@+id/relativeLayout3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="1dp"
    android:paddingBottom="@dimen/footer_vertical_margin"
    android:paddingLeft="@dimen/footer_horizontal_margin"
    android:paddingRight="@dimen/footer_horizontal_margin"
    android:paddingTop="@dimen/footer_vertical_margin" >

    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/track_button"
        android:adjustViewBounds="true"
        android:background="@android:color/transparent"
        android:scaleType="centerInside" />

</RelativeLayout>

我是 android 应用程序的新手,非常感谢任何指导。

4

2 回答 2

3

你不能使用a ListViewinside aScrollView.

您可以使用 aScrollViewListView,但不能同时使用或一个在另一个中。

于 2013-11-17T08:42:03.233 回答
2

总结我的评论:

删除不必要的relativeLayout1, 2,3scrollView。然后将底部图像按钮移动到线性布局上方,这样您就可以使用layout_above图像按钮使线性布局位置本身并赋予它的高度match_parent。这使它填充了顶部线性布局和底部图像按钮之间的空间。最后制作滚动视图的高度match_parent,这样它也将填充文本视图下方剩余的空间。

于 2013-11-13T23:22:27.677 回答