5

मैंने प्रति माह के डेटा को दिखाने के लिए व्यूपेजर का उपयोग किया है। और मैं व्यूअर पेज के बदले में टूलबार accroding को ध्वस्त करने का शीर्षक बदलना चाहता हूं। टूलबार शीर्षक को संकुचित करते समय टूलबार शीर्षक को तोड़ना केवल तभी बदलता है। enter image description hereडायनामिक रूप से सेटिंग करते समय Collapsing टूलबार का शीर्षक बदल नहीं रहा है?

मेरी लेआउट

<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> 

गतिविधि

/** 
    * Lists History of the Tasks and it's 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) { 

     } 
    } 
+1

मुझे भी एक ही समस्या का सामना करना पड़ रहा है। AFAIK अब तक आप गतिशील रूप से ढहने वाले टूलबार का शीर्षक सेट नहीं कर सकते हैं, आप इसे केवल स्थिर रूप से सेट कर सकते हैं। तो यदि आपके पास कोई समाधान है तो इसे पोस्ट करें। – surhidamatya

उत्तर

1

में यह एक known bug कि डिजाइन लाइब्रेरी के v22.2.1 रिलीज में तय किया जाना चाहिए था।

संबंधित मुद्दे