Does the Collapsing panel name not change when dynamically changed?

I used the viewpager to display data per month. and I want to change the title of the minimized toolbar to go to the viewpager page. The toolbar title summary only changes when you scroll the toolbar. enter image description here

my layout

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="@dimen/activity_history_view_pager_height" /> </LinearLayout> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.AppBarLayout android:id="@+id/my_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="@dimen/activity_history_collapsing_toolbar_height" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar_flexible_space" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:fitsSystemWindows="true" android:minHeight="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:theme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> <TextView android:id="@+id/txt_year" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/activity_history_margin_left" android:layout_marginStart="@dimen/activity_history_margin_left" android:text="@string/activity_history_year" android:textColor="@color/white" android:textSize="@dimen/activity_history_text_size" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/activity_history_margin_bottom" android:orientation="vertical" app:layout_scrollFlags="scroll"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_marginEnd="@dimen/activity_history_margin_right" android:layout_marginRight="@dimen/activity_history_margin_right" android:orientation="horizontal"> <ImageView android:id="@+id/img_leftBackArrow" android:layout_width="@dimen/activity_history_arrow_size" android:layout_height="@dimen/activity_history_arrow_size" android:contentDescription="@string/content_description" android:src="@drawable/previous_arrow" /> <ImageView android:id="@+id/img_rightBackArrow" android:layout_width="@dimen/activity_history_arrow_size" android:layout_height="@dimen/activity_history_arrow_size" android:layout_marginLeft="@dimen/activity_history_arrow_size" android:layout_marginStart="@dimen/activity_history_arrow_size" android:contentDescription="@string/content_description" android:src="@drawable/next_arrow" /> </LinearLayout> </RelativeLayout> </android.support.design.widget.AppBarLayout> </android.support.design.widget.CoordinatorLayout> 

In action

  /** * Lists History of the Tasks and it status on the basis of Date */ public class HistoryActivity extends BaseActivity implements ViewPager.OnPageChangeListener { @InjectView(R.id.toolbar_flexible_space) Toolbar toolbar; @InjectView(R.id.collapsing_toolbar) CollapsingToolbarLayout mCollapsingToolbar; @InjectView(R.id.view_pager) ViewPager viewPager; @InjectView(R.id.txt_year) TextView txtYear; int viewPagerSize = 0; ArrayList<String> taskAddedMonths; @OnClick({R.id.img_leftBackArrow, R.id.img_rightBackArrow}) public void onClick(View v) { switch (v.getId()) { case R.id.img_rightBackArrow: moveForward(); break; case R.id.img_leftBackArrow: moveBackWard(); break; } } /** * move view pager page as accroding to clicking on backword arrow. */ private void moveBackWard() { int currentPosition = viewPager.getCurrentItem(); if (currentPosition > 0) { int nextPosition = currentPosition - 1; viewPager.setCurrentItem(nextPosition); mCollapsingToolbar.setTitle(getCollapsingToolbarTitle(taskAddedMonths.get(nextPosition))); } } /** * move view pager page as according to clicking on forward arrow. */ private void moveForward() { int currentPosition = viewPager.getCurrentItem(); if (currentPosition < viewPagerSize-1) { int nextPosition = currentPosition + 1; if (viewPagerSize == 1) { //do nothing } else { viewPager.setCurrentItem(currentPosition + 1); mCollapsingToolbar.setTitle(getCollapsingToolbarTitle(taskAddedMonths.get(nextPosition))); } } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); taskAddedMonths = DatabaseManager.getInstance(HistoryActivity.this).getAllMonths(); viewPagerSize = taskAddedMonths.size(); mCollapsingToolbar.setTitle(getCollapsingToolbarTitle(taskAddedMonths.get(0))); mCollapsingToolbar.setExpandedTitleColor(Color.WHITE); toolbar.setNavigationIcon(ContextCompat.getDrawable(this, R.drawable.ic_backarrow)); viewPager.setAdapter(new ViewPagerAdapter(HistoryActivity.this, DatabaseManager.getInstance(HistoryActivity.this).getAllMonths())); viewPager.addOnPageChangeListener(this); } @Override public int getLayoutId() { return R.layout.activity_history; } @Override public Toolbar getToolbar() { return 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_history, 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 == android.R.id.home) { onBackPressed(); } return super.onOptionsItemSelected(item); } /** * get the name of month with concatenating History as like this{May History}; * * @param month * @return */ private String getCollapsingToolbarTitle(String month) { return month + " " + "History"; } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { /******************* what i have done*******************/ //change the title of collapsing toolbar accroding to change in page of viewpager mCollapsingToolbar.setTitle(getCollapsingToolbarTitle(taskAddedMonths.get(position))); } @Override public void onPageScrollStateChanged(int state) { } } 
+5
source share
1 answer

This was a known bug that should be fixed in version v22.2.1 the design library.

+1
source

All Articles