Intereting Posts
Размещение текстовой метки ToggleButton для включения и выключения Обнаружение ввода файлов браузера Android: нестатический метод не может ссылаться на статический контекст. Смущенный? Студия Android java.exe завершена с ненулевым значением выхода 3 Android: странная ошибка в манифесте Как программно удалить сертификат, установленный пользователем? Отображение изображения, загруженного из Интернета как аннотация – использование Picasso Соответствующие URI с <data> похожими на http://example.com/something в AndroidManifest Android-фрагмент вкладки хоста + просмотрщик? Установка задержки в android Изменить фоновый альфа-код кнопки без изменения значения альфа-текста в Android? Можно ли запустить андроид только при первом открытии приложения? Получить Lat Lang из place_id, возвращенного автозаполнением api Android: Spinners в ListView теряют свои значения, когда я добавляю динамически новые записи ListView Terser Раскраска сообщения LogCat?

Название CollapsingToolbarLayout исчезает

У меня есть CollapsingToolBarLayout. Когда ящик навигации закрывается, заголовок на панели инструментов исчезает. Это происходит только тогда, когда панель инструментов находится в сложенном состоянии. Пока в расширенном состоянии заголовок остается. Я проверил код. Но я не могу найти ошибку. Вот мой код для основной деятельности: –

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); } 

Основной файл активности 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> } 

Мой навигационный файл java: –

  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); } } 

У меня была схожая проблема, и выяснилось, что есть пример репо, созданный для демонстрации этой проблемы здесь . Если эта ссылка не работает, проверьте мою разветвленную версию здесь

После некоторых случайных экспериментов я обнаружил, что удаление android:fitsSystemWindows="true" (атрибут), установленное в AppBarLayout, решает эту проблему. Прикрепление файла фиксированного макета и MainActivity для вашей справки.

И FYI, ваш метод setup определенный в NavigationDrawerActivity пытается установить заголовок на Панели инструментов, но в соответствии с официальным руководством вам нужно установить заголовок в CollapsingToolBarLayout вместо панели инструментов. Я предлагаю вам использовать NavigationView (из библиотеки поддержки дизайна) вместо пользовательского DrawerFragment, если вы не хотите добавлять причудливые / пользовательские действия в свой навигационный ящик.