Android-ListView如何只在界面中间的一部分区域内滑动,因为其他区域要显示其他固定的内容

发布于 2017-01-07 16:23:54 字数 618 浏览 1364 评论 2

我的界面设计是这样的:
最上面是一个TextView,显示title,高度设置是layout_height="wrap_content"
第二个是一个ListView,显示内容,可能会很多,高度设置是layout_height="wrap_content"
第三个是一个RelativeLayout布局,要求停靠在界面最底部,高度设置是layout_height="wrap_content"
我想要的效果是,那个ListView如果内容很多的话,只能在中间那一部分划动,不能遮挡第一部分和第三部分。但是现在的效果好像是遮挡住了第三部分。
我尝试过很多方法,包括设置android:layout_weight等在内,均不能实现这个效果。我还把这个ListView放到一个布局里,还是不行。请问该怎么实现?有没有做过这方面的显示的?
我想了想,这个效果其实和TabWidget有点像。如果把TabWidget中的tab放在界面底部,而每一个tab所指定的内容都是一个ListView的话,就是这种效果了,即只有中间部分滑动,顶部和底部是一直静态存在的。但是我想了想,这个效果和我的界面还是有点不一样的,因为我最下面的那个RelativeLayout布局里面有2个按钮和一个文本框,用TabWidget的话,最下面的tab无法改成我这样的布局。所以想在这里请教大家。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生未歇 2017-10-02 00:46:51

布局代码:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" />
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:cacheColorHint="#00000000"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="20dip" >
</RelativeLayout>
</LinearLayout>

虐人心 2017-06-04 04:09:31

我猜想想要的效果如下图所示:

我的是这样的布局:

<!--最外层一个 LinearLayout 布局-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFEEF0F2"
android:orientation="vertical" >

<!-- 最上面的标题 -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/btn_special_default"
android:gravity="center"
android:textColor="@android:color/black" />

<!-- 中间的 listview -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
<!-- 这个 android:layout_weight="1" 很关键,配合 "match_parent" 就可以不会占用其他空间的位置了 -->
android:orientation="vertical" >

<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10px"
android:cacheColorHint="#00000000"
android:divider="#00000000"
android:dividerHeight="1dip"
android:drawSelectorOnTop="false"
android:fadingEdge="none"
android:listSelector="@android:color/transparent"
android:scrollbars="vertical" />

<TextView
android:id="@id/android:empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textColor="#FF000000" />
</LinearLayout>

<!-- 最下面的按钮 -->

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >

<!-- 这里摆放你第三部分的按钮 -->
</RelativeLayout>
</LinearLayout>

</LinearLayout>

你参考一下,应该是可以的。

android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"

这几个属性的这种配合可以应用在很多地方,它可以尽量撑宽自己,但是不占用其它控件的位置。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文