web-dev-qa-db-fra.com

CollapsingToolbarLayout n'affiche pas le titre

Dans mon cas, la barre d'outils disparaît lorsque je fais défiler la liste. J'utilise un CollapsingToolbarLayout et je dois définir le texte du titre. Mais dans mon cas, le texte du titre ne s'affiche pas, même si je l'ai défini (voir le code ci-dessous). Qu'est-ce qui ne va pas?

Code de mise en page:

<?xml version="1.0" encoding="utf-8"?>
<Android.support.v4.widget.DrawerLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/drawer_layout"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fitsSystemWindows="true">

<Android.support.design.widget.CoordinatorLayout
    Android:id="@+id/coordinator"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content">

    <Android.support.design.widget.AppBarLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:fitsSystemWindows="true"
        Android:theme="@style/AppTheme.AppBarOverlay"
        app:elevation="0dp">

        <Android.support.design.widget.CollapsingToolbarLayout
            Android:id="@+id/collapsing"
            Android:layout_width="match_parent"
            Android:layout_height="?attr/actionBarSize"
            Android:fitsSystemWindows="true"
            app:layout_scrollFlags="scroll|enterAlways">


            <Android.support.v7.widget.Toolbar
                Android:id="@+id/toolbar"
                Android:layout_width="match_parent"
                Android:layout_height="?attr/actionBarSize"
                Android:background="?attr/colorPrimary"
                Android:elevation="0dp"
                Android:minHeight="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay">

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

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

    <FrameLayout
        Android:id="@+id/content_frame"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

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

<Android.support.design.widget.NavigationView
    Android:id="@+id/nav_view"
    Android:layout_width="wrap_content"
    Android:layout_height="match_parent"
    Android:layout_gravity="start"
    app:headerLayout="@layout/app_nav_header_main"
    app:menu="@menu/main_drawer" />

</Android.support.v4.widget.DrawerLayout>

Code d'activité:

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.app_activity_with_left_panel);

    mPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    mCollapsingToolbarLayout = (CollapsingToolbarLayout)findViewById(R.id.collapsing);
    setSupportActionBar(mToolbar);
    setTitle(getIntent().getStringExtra(TITLE));
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);
}

@Override
public void setTitle(CharSequence title) {
    if (title != null && !title.toString().isEmpty()) {
        mTitle = title.toString();
        mCollapsingToolbarLayout.setTitle(mTitle);
    }
}
17
GPPSoft

Enlève ça

@Override
public void setTitle(CharSequence title) {
    if (title != null && !title.toString().isEmpty()) {
        mTitle = title.toString();
        mCollapsingToolbarLayout.setTitle(mTitle);
    }
}

et ajoutez ceci sur votre OnCreate().

    mCollapsingToolbarLayout = (CollapsingToolbarLayout)findViewById(R.id.collapsing);
    mCollapsingToolbarLayout.setTitleEnabled(false);

    mToolbar.setTitle("title");

Cela désactive le titre par défaut avec un comportement de réduction et ajoute le titre statique à la barre d'outils.

26
Ironman

Pour ceux qui cherchent à désactiver le titre, ajoutez simplement

app:titleEnabled="false"

Ensuite, le titre de la barre d'outils elle-même apparaîtrait donc nous allons le désactiver avec

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);

ou avec ces lignes dans le style xml

<item name="Android:displayOptions">showHome|useLogo</item>
<item name="displayOptions">showHome|useLogo</item>

Trop recherché pour faire ce résumé de recherche, j'aimerais que cela aide.

12
Dasser Basyouni

utilisez ceci :

app:expandedTitleTextAppearance="@Android:color/transparent" avec votre CollapsingToolbarLayout

2
Vivek_Neel