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'. Где ваш код «Toolbar»? Вы можете установить высоту здесь 'android: minHeight ="? Attr/actionBarSize "в вашем XML. Используйте высоту, а не 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 является намотав его высоту вокруг своих детей, то есть он будет получать фиксированный размер, только если дети измеряются. ваша минимальная высота составляет около 50 до 60dip, вот как низко ваш ToolBar будет. поэтому, если дети высота не добавить до разумного большого числа она все равно будет <= 50

дать ему высоту предпочтительный android:layout_height="200dp"

0

Используйте некоторые темы, без панели действий для этой деятельности или целое приложение, если вам не нужны функциональные возможности панели действий (например, Theme.Holo.NoActionBar). Вы можете добавить макет верхнего бара непосредственно в макете корней действий. Если вы будете использовать его в других действиях, рассмотрите возможность создания отдельных файлов xml для макета или даже вашего собственного класса ActionBarView.

Смежные вопросы