【发布时间】:2013-11-13 20:40:14
【问题描述】:
我正在按照以下设计开发安卓应用。
我想将滚动视图的高度设置为剩余的屏幕尺寸(在被页眉、页脚和其他文本占据之后),尽管列表视图中没有任何内容。当项目添加到列表视图(动态)时,我想滚动它。但是现在列表视图中没有项目时我无法设置初始高度。
下面是我的布局文件。
<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 应用的新手,非常感谢任何指导。
【问题讨论】:
-
我不会将 ListView 放在 ScrollView 中。 ListView 已经可以滚动了。而且您的 relativeLayout2 和 relativeLayout3 是不必要的,因为它们每个只包装一个孩子。由于您的顶级元素是相对布局,因此您可以乱序指定内容。在中间线性布局之前指定底部图像按钮。然后只需将线性布局高度设置为 match_parent,并将 layout_above 和 layout_below 设置为相对于 relativeLayout1 和您的底部图像按钮,因此它总是填充两者之间的剩余空间。将列表视图高度设置为 match_parent
-
实际上,你的 relativeLayout1 也是不必要的,因为它也有一个孩子。
-
@Tenfour04 我仔细按照您的指示操作,现在它按预期工作。非常感谢,我对RelativeLayout,LinearLayout等有了清晰的了解。如果您可以发表您的评论作为答案,我可以接受。
标签: java android listview scrollview android-relativelayout