[英]Default height of toolbar with menu icons
如果Android工具欄包含帶有圖標的菜單,默認高度是多少?
如果我用
<android.support.v7.widget.Toolbar android:layout_height="?android:attr/actionBarSize" />
然后看起來像這樣截止
如果我用
<android.support.v7.widget.Toolbar android:layout_height="wrap_content" />
它正常工作。 但是在初始化Activity時,它會閃爍片刻,因為它開始時較小,並在幾毫秒后進行了調整。
如何從一開始就設置正確的高度?
完整的XML看起來像這樣
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true"
tools:context=".MyActivity" >
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay"
android:fitsSystemWindows="true" >
<android.support.v7.widget.Toolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/myToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
android:elevation="@dimen/elevation"
android:fitsSystemWindows="true" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
菜單文件如下所示
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MyActivity" >
<item
android:id="@+id/action_save"
android:orderInCategory="100"
android:icon="@drawable/ic_save"
app:showAsAction="always" />
</menu>
在我的Activity onCreate()
方法中,我這樣做
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mine);
Toolbar toolbar = (Toolbar) findViewById(R.id.myToolbar);
setSupportActionBar(toolbar);
}
actionBarSize是正確的方法,但看起來您的Toolbar
在StatusBar
下。
為了避免在Android StatusBar
下繪制,您應該為根布局( CoordinatorLayout
)禁用fitsSystemWindows
。 如果您想了解更多信息,請查閱這篇文章 。
對於其他人,如果android:fitsSystemWindows="false"
不能解決問題,您可以檢查問題是否與狀態欄的透明度有關-在項目中查找android:windowTranslucentStatus
, android:statusBarColor
。
即使您自己沒有設置任何這些設置,它們也可能來自默認的Android Studio模板。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.