所以我的XML是这样的:
<?xml version="1.0" enCoding="utf-8"?><androID.support.v4.Widget.DrawerLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@+ID/drawer_layout" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" > <androID.support.v7.Widget.Toolbar androID:ID="@+ID/my_toolbar" androID:layout_height="56dp" androID:layout_wIDth="match_parent" androID:minHeight="?attr/actionbarSize" androID:background="?attr/colorPrimary" /> <FrameLayout androID:ID="@+ID/main_frag" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" /> <!-- ListVIEw here --></androID.support.v4.Widget.DrawerLayout>
发生了什么,即使我明确地将高度设置为56dp,工具栏的作用就像match_parent一样,并且会占据屏幕的整个高度?有没有更好的方法呢?
或者我应该将工具栏放在我的FragementTransactions填充FrameLayout的布局中吗?这似乎没有效率,因为我有几个.
解决方法:
DrawerLayout有两个子视图:第一个用于主要内容,第二个用于抽屉:两者始终设置为match_parent.因此,您的工具栏和FrameLayout应该包装在一个垂直的linearLayout中,根据AppCompat制造商的canonical example设置为match_parent:
<!-- The important thing to note here is the added fitSystemwindows --><androID.support.v4.Widget.DrawerLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@+ID/my_drawer_layout" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:fitsSystemwindows="true"> <!-- Your normal content vIEw --> <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="vertical"> <!-- We use a Toolbar so that our drawer can be displayed in front of the action bar --> <androID.support.v7.Widget.Toolbar androID:ID="@+ID/my_toolbar" androID:layout_height="wrap_content" androID:layout_wIDth="match_parent" androID:minHeight="?attr/actionbarSize" androID:background="?attr/colorPrimary" /> <FrameLayout androID:ID="@+ID/main_frag" androID:layout_wIDth="match_parent" androID:layout_height="0dp" androID:layout_weight="1" /> </linearLayout> <!-- Your drawer vIEw. This can be any vIEw, FrameLayout is just an example. As we have set fitSystemwindows=true this will be displayed under the status bar. --> <FrameLayout androID:layout_wIDth="304dp" androID:layout_height="match_parent" androID:layout_gravity="left|start" androID:fitsSystemwindows="true"> <!-- ListVIEw here --> </FrameLayout></androID.support.v4.Widget.DrawerLayout>
总结 以上是内存溢出为你收集整理的android – 使用带有FrameLayout的AppCompat工具栏全部内容,希望文章能够帮你解决android – 使用带有FrameLayout的AppCompat工具栏所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)