web-dev-qa-db-fra.com

Comment définir la hauteur de la barre d'outils Android?

Je veux réaliser ceci:

Ce que je pensais était de créer une barre d’outils personnalisée avec une hauteur plus grande et de travailler normalement avec tabhost et tabpager. Je l'ai implémenté, mais la barre d'outils affiche la hauteur normale. Elle ne s'affiche donc pas comme je le souhaite, mais uniquement la partie supérieure. Est-ce la bonne approche ou est-il possible de définir un TabHost en dessous d'une disposition linéaire/relative? Parce que je n'ai pas besoin de travailler avec comme une barre d'action. 

Code pertinent

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>

Et cette fonction dans l'activité:

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

votre ToolBar qui est un ViewGroup enveloppe sa taille autour de ses enfants, ce qui signifie qu'il aura une taille fixe uniquement si les enfants sont mesurés. votre hauteur minimale est d'environ 50 à 60dip, le niveau de votre ToolBar étant alors bas . si la hauteur de vos enfants ne correspond pas à un grand nombre raisonnable, elle sera toujours <= 50

donnez-lui une hauteur préférée Android:layout_height="200dp"

16
Elltz

vous pouvez utiliser AppBarLayout comme ceci:


<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

Utilisez un thème sans barre d'action pour cette activité ou l'application dans son ensemble si vous n'avez pas besoin des fonctionnalités de la barre d'action (telles que Theme.Holo.NoActionBar) . Vous pouvez ajouter la présentation de votre barre supérieure directement dans la disposition racine des activités. Si vous comptez l'utiliser dans d'autres activités, envisagez de créer des fichiers XML séparés pour la mise en page ou même votre propre classe ActionBarView. 

0
cutoff