android– 使用带有FrameLayout的AppCompat工具栏

android– 使用带有FrameLayout的AppCompat工具栏,第1张

概述所以我的XML是这样的:<?xmlversion="1.0"encoding="utf-8"?><android.support.v4.widget.DrawerLayoutxmlns:android="http://schemas.android.com/apkes/android"android:id="@+id/drawer_layout"android:layout

所以我的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工具栏所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存