it-swarm.com.ru

Как установить высоту панели инструментов 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);
    }
9
Alejandro Cumpa
<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"

16
Elltz

вы можете использовать AppBarLayout так:


<Android.support.design.widget.AppBarLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:theme="@style/AppTheme">

        <Android.support.v7.widget.Toolbar
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:id="@+id/toolbar_"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/AppTheme.PopupOverlay">

        </Android.support.v7.widget.Toolbar>

        <Android.support.design.widget.TabLayout
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:id="@+id/tabs"
            app:tabBackground="@color/White"
            app:tabIndicatorColor="@color/OrangeFFC200"
            app:tabTextAppearance="@style/MineCustomTabText">

        </Android.support.design.widget.TabLayout>

</Android.support.design.widget.AppBarLayout>

0
M Risnawan Budianto

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

0
cutoff