7

Desidero visualizzare del testo nella barra degli strumenti di compressione anziché il titolo. Il problema è che il testo può contenere più di 1 riga. Quindi ho bisogno di usare la visualizzazione personalizzata, ma non riesco a capire come implementarlo in modo corretto.Visualizzazione testo multilinea in CollapsingToolbarLayout anziché Title

Inoltre, come impostare l'altezza minima CollapsingToolbar, per mostrare sempre tutte le righe di testo, non collassarle in una?

Totalmente, ho bisogno di qualcosa di simile:

enter image description here

Dove 1 - posizione e 3 iniziare - conclude posizione (non più il collasso dopo aver raggiunto questa altezza barra degli strumenti).

+0

vedere questo liknk potrebbe essere utile per voi ... https: //stackoverflow.com/questions/34185843/android-collapsing-toolbar-how-to-resize-the-text-so-that-it-shows- full-text-t – Vasant

risposta

-3

Per testo multilinea utilizzare sotto cade per barra degli strumenti;

<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

Si può provare a utilizzare questo molto bello lib here.

Il file README spiega tutto su come aggiungere e utilizzare la lib nel progetto.

1

Quando si desidera eseguire la personalizzazione in CollapsingToolbarLayout, è necessario conoscerne. È facile aggiungere CollapsingToolbarLayout nel progetto Android. Se si utilizza AndroidStudio quindi facile da aggiungere.
Basta fare clic con il pulsante destro sul pacchetto come com.project, selezionare Nuovo-> Attività-> ScorrimentoAttività e Add nel progetto. Ora hai solo bisogno di personalizzarti con il tuo codice.

Goto si file di stile e aggiungere questi due stile: -

Goto tua activity_scrolling.xml file e impostare che due di stile nella vostra CollapsingToolbarLayout. Altro è aggiungere TextView come requisito in CollapsingToolbarLayout. In questo modo: -

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

Quando si esegue qualche personalizzazione con il tuo CollapsingToolbarLayout la è necessario implementare un codice personalizzato in te attività dei file anche.

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

Questo è il codice completo che, se si desidera aggiungere multilinea TextView in CollapsingToolbarLayout invece del titolo. Spero che tu possa ottenere una soluzione.

Quando si implementa un codice come questo, non è necessario impostare l'altezza minima di CollapsingToolbar. Mostra tutte le righe di testo sempre in base alla lunghezza del testo.