El título de CollapsingToolbarLayout desaparece

Tengo un CollapsingToolBarLayout.When el cajón de la navegación cierra, el título en la barra de herramientas desaparece. Esto sucede solamente cuando la barra de herramientas está en estado colapsado. Mientras que en el estado ampliado el título sigue siendo. He comprobado el código Pero soy incapaz de encontrar el insecto. Aquí está mi código para la actividad principal: –

import android.support.design.widget.CollapsingToolbarLayout; import android.support.design.widget.CoordinatorLayout; import android.support.v4.view.ViewPager; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.defcomm.invento.NavigationDrawerActivity; import android.support.v4.widget.NestedScrollView; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; public class INVENTO extends AppCompatActivity { private Toolbar toolbar; private CoordinatorLayout mCoordinator; private CollapsingToolbarLayout mCollapsableLayout; private NestedScrollView nestedScrollView; private ViewPager mPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new); mCoordinator= (CoordinatorLayout) findViewById(R.id.coordinator_layout); mCollapsableLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); toolbar= (Toolbar) findViewById(R.id.appbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayShowHomeEnabled(true); mCollapsableLayout.setTitle(getResources().getString(R.string.app_name)); nestedScrollView= (NestedScrollView) findViewById(R.id.rvToDoList); mCollapsableLayout.setExpandedTitleColor(getResources().getColor(R.color.textColor)); mCollapsableLayout.setCollapsedTitleTextColor(getResources().getColor(R.color.textColor)); NavigationDrawerActivity drawerFragment= (NavigationDrawerActivity) getSupportFragmentManager(). findFragmentById(R.id.navigation_drawer); drawerFragment.setUp(R.id.navigation_drawer, (DrawerLayout) findViewById(R.id.drawerlayout), toolbar); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_invento, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } 

Actividad principal archivo xml: –

  <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawerlayout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.defcomm.invento.INVENTO"> <android.support.design.widget.CoordinatorLayout android:id="@+id/coordinator_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.design.widget.AppBarLayout android:id="@+id/app_bar_layout" android:layout_width="match_parent" android:layout_height="wrap_content" > <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="200dp" android:fitsSystemWindows="true" android:background="#3f51b5" app:contentScrim="@color/primaryColor" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/imageview" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/index" app:layout_collapseMode="parallax" /> <android.support.v7.widget.Toolbar android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_scrollFlags="scroll|enterAlways" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:layout_collapseMode="pin"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:id="@+id/rvToDoList" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." android:textSize="26sp" android:background="@android:color/white" android:padding="5dp" /> </android.support.v4.widget.NestedScrollView> <fragment android:id="@+id/navigation_drawer" android:name="com.defcomm.invento.NavigationDrawerActivity" android:layout_width="@dimen/drawer_width" android:layout_height="match_parent" android:layout_gravity="start" app:layout="@layout/fragment_navigation_drawer" tools:layout="@layout/fragment_navigation_drawer" /> </android.support.design.widget.CoordinatorLayout> </android.support.v4.widget.DrawerLayout> } 

Mi archivo java de navegación: –

  import android.content.Context; import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.design.widget.CoordinatorLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.support.design.widget.CollapsingToolbarLayout; import android.view.View; import android.view.ViewGroup; public class NavigationDrawerActivity extends Fragment { private ActionBarDrawerToggle mdrawerToggle; private DrawerLayout mdrawerLayout; private boolean mUserLearnedState; private CoordinatorLayout mcoordinator; private CollapsingToolbarLayout collapsingToolbarLayout; View containerId; public static final String file_pref_name = "Testpef"; public static final String KEY_USER_VALUE = "user_learned_drawer"; private boolean mfromSavedInstanceState; public NavigationDrawerActivity() { // Required empty public constructor } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); mUserLearnedState = Boolean.valueOf(readPreference(getActivity(), KEY_USER_VALUE, "false")); if (savedInstanceState != null) { mfromSavedInstanceState = true; } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View layout=inflater.inflate(R.layout.fragment_navigation_drawer, container, false); //recyclerview= (RecyclerView) layout.findViewById(R.id.recycler); return layout; } public void setUp(final int fragmentId, DrawerLayout drawerlayout, final Toolbar toolbar) { mdrawerLayout = drawerlayout; containerId = getActivity().findViewById(fragmentId); mdrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerlayout, toolbar, R.string.drawer_open, R.string.drawer_close) { @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); if (!mUserLearnedState) { mUserLearnedState = true; saveToPreference(getActivity(), KEY_USER_VALUE, mUserLearnedState + ""); } getActivity().invalidateOptionsMenu(); toolbar.setTitle(getResources().getString(R.string.app_name)); } @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); getActivity().invalidateOptionsMenu(); toolbar.setTitle(getResources().getString(R.string.app_name)); } @Override public void onDrawerSlide(View drawerView, float slideOffset) { if (slideOffset < 0.5f) { toolbar.setAlpha(1 - slideOffset); } } }; if (!mUserLearnedState && !mfromSavedInstanceState) { mdrawerLayout.openDrawer(containerId); } mdrawerLayout.setDrawerListener(mdrawerToggle); mdrawerLayout.post(new Runnable() { @Override public void run() { mdrawerToggle.syncState(); } }); } public static void saveToPreference(Context context, String preferenceName, String preferenceValue) { SharedPreferences shared = context.getSharedPreferences(file_pref_name, Context.MODE_PRIVATE); SharedPreferences.Editor editor = shared.edit(); editor.putString(preferenceName, preferenceValue); editor.apply(); } public static String readPreference(Context context, String preferenceName, String defaultValue) { SharedPreferences share = context.getSharedPreferences(file_pref_name, Context.MODE_PRIVATE); return share.getString(preferenceName, defaultValue); } } 

Tuve un problema similar y descubrió que hay un repo ejemplo que se creó para demostrar este problema aquí . Si ese enlace no funciona, revisa mi versión bifurcada aquí

Después de algunos experimentos al azar me enteré de que la eliminación de android:fitsSystemWindows="true" (atributo) establecido en AppBarLayout resuelve este problema. Adjuntar archivo de diseño fijo y MainActivity para su referencia.

Y FYI, su método de setup definido en NavigationDrawerActivity intenta establecer el título en la barra de herramientas, pero como por la guía oficial que necesita para establecer el título en el CollapsingToolBarLayout en lugar de la barra de herramientas. Le sugeriré que utilice NavigationView (desde la biblioteca de soporte de diseño) en lugar de un DrawerFragment personalizado a menos que desee añadir comportamiento extravagante / personalizado a su cajón de navegación.

  • OnCreateOptionsMenu () en el fragmento que no reemplaza los menús de ActionBar
  • Cómo abrir el cajón de navegación en el botón de clic en el fragmento principal?
  • Pestañas de la barra de acción con ViewPager con el cajón de navegación
  • Android Api 23 Cambiar Navegación Ver headerLayout textview
  • No se puede resolver el método getActivity ()
  • Adición de una imagen grande a un cajón de navegación (SlidingMenu libs) - ¿Cómo?
  • Hacer fragmento que se puede hacer clic al abrir el cajón de navegación
  • No abra el cajón de navegación de forma predeterminada
  • El artículo de DrawerLayout hace clic - ¿Cuándo es el momento adecuado para reemplazar el fragmento?
  • Desenfocar el fondo del cajón de navegación
  • Salir de la aplicación cuando presione el botón Atrás en actividad con múltiples fragmentos en el Gaveta de navegación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.