7

我要實現這一點:如何設置Android工具欄高度?

我的想法是做一個自定義工具欄有一個更大的高度,並與tabhost和tabpager正常工作。我已經實現了它,但工具欄顯示的是正常的高度,所以它不會顯示爲我想要的,只是頂部。這是正確的方法還是可以將TabHost設置在線性/相對佈局下?因爲我不需要將它作爲一個操作欄來使用。

相關代碼

toolbar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbarTitle" 
    android:orientation="vertical" 
    android:background="@color/black" 
    android:layout_width="match_parent" 
    android:fitsSystemWindows="true" 
    android:minHeight="?attr/actionBarSize" 
    android:theme="@style/AppTheme" 
    android:layout_height="wrap_content"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
    <ImageView 
     android:id="@+id/img_logo" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="55dp" 
     android:scaleType="centerInside" 
     android:src="@drawable/logo_home" 
     /> 

    <TextView 
     android:id="@+id/txt_version" 
     android:text="@string/app_version" 
     android:textColor="@color/white" 
     android:layout_below="@+id/img_logo" 
     android:paddingBottom="10dp" 
     android:paddingTop="15dp" 
     android:gravity="center" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 
    </RelativeLayout> 
</android.support.v7.widget.Toolbar> 

而且在活動這個功能:

private void setupActionBar() 
    { 
     ActionBar ab = getSupportActionBar(); 
     ab.setDisplayShowCustomEnabled(true); 
     ab.setDisplayShowTitleEnabled(false); 
     LayoutInflater inflator = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View v = inflator.inflate(R.layout.toolbar_title, null); 
     ab.setCustomView(v); 
    } 
+0

您正在使用'ActionBar'。 「工具欄」代碼在哪裏?你可以在你的XML中設置高度'android:minHeight =「?attr/actionBarSize」'。使用高度而不是minHeight。 –

回答

11
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/toolbarTitle" 
android:orientation="vertical" 
android:background="@color/black" 
android:layout_width="match_parent" 
android:fitsSystemWindows="true" 
android:minHeight="?attr/actionBarSize" //pay attention here 
android:theme="@style/AppTheme" 
android:layout_height="wrap_content"> //pay attention here 

ToolBar這是一個ViewGroup被包木窗的高度圍繞其孩子這意味着將獲得只有當孩子們測量的固定大小。你的最低身高大約是5060dip,這就是你的ToolBar會有多低。 因此,如果您的孩子身高加起來還不到一個合理的大數目它仍然是<= 50

給它一個首選高度android:layout_height="200dp"

0

使用一些主題與本次活動或不採取行動吧整個應用程序,如果你不需要操作欄的功能(如Theme.Holo.NoActionBar)。 您可以直接在活動根佈局中添加頂部欄的佈局。如果您將在其他活動中使用它,請考慮爲佈局甚至您自己的ActionBarView類創建單獨的xml文件。