android–DrawerLayout不滚动

android–DrawerLayout不滚动,第1张

概述我注意到Google应用程序中的抽屉是可滚动的,但我不能出于某种原因得出如何实现可滚动的DrawerLayout的结论.我尝试使用以下设计范例构造布局文件.<android.support.v4.widget.DrawerLayoutxmlns:android="http://schemas.android.com/apkes/android"android:id="@+id/d

我注意到Google应用程序中的抽屉是可滚动的,但我不能出于某种原因得出如何实现可滚动的DrawerLayout的结论.我尝试使用以下设计范例构造布局文件.

<androID.support.v4.Widget.DrawerLayout   xmlns:androID="http://schemas.androID.com/apk/res/androID"   androID:ID="@+ID/drawerLayout"   androID:layout_wIDth="match_parent"   androID:layout_height="match_parent">  <FrameLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:tools="http://schemas.androID.com/tools"    androID:ID="@+ID/frameLayout"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    tools:context=".mainScreen">    <!-- Layout of Activity -->  </FrameLayout>  <!-- DrawerLayout segment -->  <ScrollVIEw     androID:ID="@+ID/scrollVIEw"     androID:layout_wIDth="match_parent"     androID:layout_height="match_parent">     <linearLayout      androID:ID="@+ID/drawerlinearLayout"      androID:orIEntation="vertical"      androID:layout_wIDth="260dp"      androID:layout_height="match_parent"      androID:layout_gravity="start|bottom"      androID:layout_margintop="?androID:attr/actionbarSize"      androID:divIDer="@androID:color/transparent"      androID:divIDerHeight="0dp"      androID:background="#77000000">     <!-- Layout of Drawer -->     </linearLayout>   </ScrollVIEw> </androID.support.v4.Widget.DrawerLayout>

但是,无论有没有ScrollVIEw,当抽屉超出屏幕末端时,抽屉只会在底部切断物品.我无法启用任何形式的滚动.不确定我缺少什么或需要启用.我们将不胜感激.

DrawerLayout段中的linearLayout包含不同的样式视图.一个视图仅显示标题,下方有一个分隔符,一个显示带有文本旁边的图像视图,另一个显示带有内置于该行的开关的标题.因此,如果在XML编码布局文件之外完成,则需要考虑多个样式的视图.

解决方法:

虽然使用ListVIEw是一个有效的选项,但对我来说,尝试和解决我已经在上面的ScrollVIEw之间为我的布局构建了如此大的XML文件的情况非常有用.事实证明,为了使其按预期工作,只需要进行一些小的修改.构建的最新布局文件如下:

  <androID.support.v4.Widget.DrawerLayout   xmlns:androID="http://schemas.androID.com/apk/res/androID"   androID:ID="@+ID/drawerLayout"   androID:layout_wIDth="match_parent"   androID:layout_height="match_parent">  <FrameLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:tools="http://schemas.androID.com/tools"    androID:ID="@+ID/frameLayout"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    tools:context=".mainScreen">    <!-- Layout of Activity -->  </FrameLayout>  <!-- DrawerLayout segment -->  <ScrollVIEw     androID:ID="@+ID/scrollVIEw"     androID:layout_wIDth="260dp"     androID:layout_height="match_parent"     androID:layout_gravity="start|bottom"     androID:layout_margintop="?androID:attr/actionbarSize">     <linearLayout      androID:ID="@+ID/drawerlinearLayout"      androID:orIEntation="vertical"      androID:layout_wIDth="260dp"      androID:layout_height="wrap_content"      androID:divIDer="@androID:color/transparent"      androID:divIDerHeight="0dp"      androID:background="#77000000">     <!-- Layout of Drawer -->     </linearLayout>   </ScrollVIEw> </androID.support.v4.Widget.DrawerLayout>

主要修改要求我改变重力和边缘存在的位置.重力需要在周围的ScrollVIEw中,否则会导致在某些情况下没有滚动或实际崩溃的奇怪行为.然后需要将内部布局更改为“换行内容”.

如果边距也未移入ScrollVIEw,则显然不会向下滚动到底部.它在底部留下了未滚动的卷轴边缘.一旦解决了这个问题,DrawerLayout就像预期的那样工作. ListVIEw选项也提出了另一种使用方法,但正如此处所提到的,值得我再分析一下,重新使用我已编写过的代码;特别是需要在视图中处理的几个不同的自定义视图.

总结

以上是内存溢出为你收集整理的android – DrawerLayout不滚动全部内容,希望文章能够帮你解决android – DrawerLayout不滚动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1113185.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存