7

Tôi muốn hiển thị một số văn bản trong thanh công cụ Thu gọn thay vì tiêu đề. Vấn đề là văn bản có thể chứa nhiều hơn 1 dòng. Vì vậy, tôi cần sử dụng chế độ xem tùy chỉnh, nhưng không thể hiểu cách triển khai chế độ xem theo đúng cách.Xem văn bản nhiều dòng trong Bản tóm tắtToolbarThanh toán thay vì Tiêu đề

Ngoài ra, cách đặt chiều cao tối thiểu CollapsingToolbar, để luôn hiển thị tất cả các dòng văn bản, không thu gọn tất cả các dòng văn bản?

Hoàn toàn, tôi cần một cái gì đó như thế này:

enter image description here

đâu 1 - vị trí bắt đầu và 3 - vị trí (không sụp đổ hơn sau khi đạt chiều cao thanh công cụ này) kết thúc.

+0

xem liknk này có thể hữu ích cho bạn ... https: //stackoverflow.com/questions/34185843/android-collapsing-toolbar-how-to-resize-the-text-so-that-it-shows- toàn văn-t – Vasant

Trả lời

-3

Để sử dụng văn bản nhiều dòng bên dưới, hãy dùng cho Thanh công cụ;

<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/color" 
     app:popupTheme="@style/AppTheme.PopupOverlay"> 
     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <TextView 
       android:id="@+id/title_text" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:textColor="#FFF" 
       android:inputType="textMultiLine"     
       /> 
     </RelativeLayout> 
     </android.support.v7.widget.Toolbar> 
0

Bạn có thể thử sử dụng thư viện rất đẹp này here.

Tệp README giải thích mọi thứ về cách thêm và sử dụng lib trong dự án của bạn.

1

Khi bạn muốn tùy chỉnh trong CollapsingToolbarLayout thì bạn cần biết về điều đó. Thật dễ dàng để thêm CollapsingToolbarLayout trong dự án Android. Nếu bạn đang sử dụng AndroidStudio thì bạn có thể dễ dàng thêm.
Chỉ cần nhấp chuột phải vào gói của bạn như com.project, chọn Mới-> Hoạt động-> ScrollingActivityAdd trong dự án của bạn. Bây giờ bạn chỉ cần thực hiện một số tùy chỉnh với mã của bạn.

Chuyển đến bạn phong cách tập tin và thêm hai phong cách sau đây: -

Chuyển đến activity_scrolling.xml tập tin của bạn và thiết lập rằng hai phong cách trong CollapsingToolbarLayout của bạn. Khác là thêm TextView theo yêu cầu của bạn trong CollapsingToolbarLayout. Như sau: -

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    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:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="com.mailcollection.ScrollingActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBarLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsingToolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      app:expandedTitleMarginEnd="64dp" 
      app:expandedTitleMarginStart="48dp" 
      app:collapsedTitleTextAppearance="@style/TextAppearance.MyApp.Title.Collapsed" 
      app:contentScrim="?attr/colorPrimary" 
      app:expandedTitleTextAppearance="@style/TextAppearance.MyApp.Title.Expanded" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:gravity="left|bottom" 
       android:orientation="vertical" 
       android:padding="10dp" 
       android:layout_marginBottom="20dp" 
       app:layout_collapseMode="parallax"> 

       <TextView 
        android:id="@+id/tv_title" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:text="@string/app_name" 
        android:textSize="15sp"/> 

       <TextView 
        android:id="@+id/tv_description" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:textSize="20sp" 
        android:text="@string/title_description"/> 
      </LinearLayout> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/AppTheme.PopupOverlay"/> 

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

    <include layout="@layout/content_scrolling"/> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     app:layout_anchor="@id/appBarLayout" 
     app:layout_anchorGravity="bottom|end" 
     app:srcCompat="@android:drawable/ic_dialog_email"/> 

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

Khi bạn thực hiện một số tùy chỉnh với CollapsingToolbarLayout, bạn cũng cần thực hiện một số mã tùy chỉnh trong tệp hoạt động của mình.

Chuyển đến bạn ScrollingActivity.java file: -

public class ScrollingActivity extends AppCompatActivity { 

    CollapsingToolbarLayout collapsingToolbar; 
    AppBarLayout appBarLayout; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_scrolling); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     collapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsingToolbar); 
     collapsingToolbar.setCollapsedTitleTextAppearance(R.style.TextAppearance_MyApp_Title_Collapsed); 
     collapsingToolbar.setExpandedTitleTextAppearance(R.style.TextAppearance_MyApp_Title_Expanded); 

     //This is the most important when you are putting custom textview in CollapsingToolbar 
     collapsingToolbar.setTitle(" "); 

     appBarLayout = (AppBarLayout) findViewById(R.id.appBarLayout); 
     appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { 
      boolean isShow = false; 
      int scrollRange = -1; 

      @Override 
      public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { 
       if (scrollRange == -1) { 
        scrollRange = appBarLayout.getTotalScrollRange(); 
       } 
       if (scrollRange + verticalOffset == 0) { 
        //when collapsingToolbar at that time display actionbar title 
        collapsingToolbar.setTitle(getResources().getString(R.string.app_name)); 
        isShow = true; 
       } else if (isShow) { 
        //carefull there must a space between double quote otherwise it dose't work 
        collapsingToolbar.setTitle(" "); 
        isShow = false; 
       } 
      } 
     }); 
    } 
} 

Đây là mã hoàn chỉnh nếu bạn muốn thêm Multiline TextView trong CollapsingToolbarLayout thay vì tiêu đề. Tôi hy vọng bạn sẽ nhận được giải pháp cho bạn.

Khi bạn triển khai mã như thế này thì không cần thiết đặt chiều cao tối thiểu của CollapsingToolbar, Nó hiển thị tất cả các dòng văn bản luôn theo độ dài văn bản.

Các vấn đề liên quan