Android - 没有滚动条的滚动

标签 android android-layout android-linearlayout android-xml android-relativelayout

我有以下布局(为简洁起见,我删除了不同的属性):

<RelativeLayout>
    <LinearLayout>
        <android.support.v7.widget.Toolbar/>
        <LinearLayout android:id="@+id/item1"/>
        <LinearLayout android:id="@+id/item2"/>
        <LinearLayout android:id="@+id/item3"/>
        <ListView/>
    </LinearLayout>
    <android.support.design.widget.FloatingActionButton/>
</RelativeLayout>

我试图让整个页面都可以滚动。目前,只有 ListView 滚动。知道怎么做吗?请注意,由于我嵌入了 ListView,因此我无法使用 ScrollView。此外,外部元素必须是 RelativeLayout,因为无论滚动如何,我都需要固定 FloatingActionButton。

最佳答案

ScrollView 中包含一个 ListView 会给您带来很多麻烦。而是只在布局中保留 ListView

<RelativeLayout>
    <LinearLayout>
        <android.support.v7.widget.Toolbar/>
        <ListView/>
    </LinearLayout>
    <android.support.design.widget.FloatingActionButton/>
</RelativeLayout>

并将您的LinearLayouts 移动到单独的文件中(例如header.xml)

<LinearLayout>
    <LinearLayout android:id="@+id/item1"/>
    <LinearLayout android:id="@+id/item2"/>
    <LinearLayout android:id="@+id/item3"/>
</LinearLayout>

然后您可以将布局作为标题添加到您的 ListView

ListView listView = (ListView) findViewById(R.id.list);
View header = LayoutInflater.from(context).inflate(R.layout.header, listView, false);
listView.addHeaderView(header); // call before you set adapter!

现在整个 View 都可以滚动了。如果您使用 onItemClickListener,请不要忘记索引会被 listView.getHeaderViewsCount() 移动。

关于Android - 没有滚动条的滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31020748/

相关文章:

java - smali 中没有 java 导入?

如果项目数量小于屏幕高度,Android LinearLayout 无法正确显示

android - 取消所有接近警报

android - 找不到OpenCV库-2.4.3.apk! Android OpenCV

android - 阻止滚动以及展开/折叠可折叠工具栏

android - 如何将溢出菜单添加到空 Activity 。我正在使用 android studio 2.2.3

java - 将图像放在线性布局中的绝对位置

android - 如何在 LinearLayout 中水平对齐元素?

Android Listview 包含布局点击列表项

android - CoordinatorLayout 中的 ViewPager 意外收缩