2016-05-04 4 views
-1

Ich implementiere TabLayout zu ähnlichen Google Play Music App.Benutzerdefinierte TabLayout wie Google Play Music App

  • Portrait (Google Play Music): enter image description here
  • Landschaft (Google Play Music): enter image description here

Das ist mein Layout:

<android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

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

Mein Code TabLayout zu handhaben :

private void init() { 
    mTabLayout = (TabLayout) findViewById(R.id.tab_layout); 
    mTabLayout.addTab(mTabLayout.newTab().setText("Category 1")); 
    mTabLayout.addTab(mTabLayout.newTab().setText("Category 2")); 
    mTabLayout.addTab(mTabLayout.newTab().setText("Category 3")); 
    mTabLayout.addTab(mTabLayout.newTab().setText("Category 4")); 
    mTabLayout.addTab(mTabLayout.newTab().setText("Category 5")); 
    mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); 
} 

Aber Ergebnis ist TabLayout Rand auf der linken Seite hat doensn't:

  • Portrait (mein Beispiel) :: enter image description here
  • Landschaft (mein Beispiel): enter image description here

I versuchen Sie dies article, aber das Ergebnis ist nicht wie erwartet. Wie kann ich TabLayout wie die Google Play Music App wie oben gezeigt anpassen?

Antwort

3

Sie sollten android:marginLeft zu dem TabLayout verwenden.

<android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="16dp"> 

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

Um unterschiedliche Ränder für Hoch- und Querformat zu haben, nutzen Sie die Werte bei Werten/dimens.xml und Werte Land/dimens.xml

Update:

Marge Verwendung macht einen Raum, auch wenn der Tab gescrollt wird. So verwendet Polsterung, mit clipToPadding="false"

<android.support.design.widget.TabLayout 
      android:id="@+id/tab_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingLeft="16dp" 
      android:clipToPadding="false"> 

     </android.support.design.widget.TabLayout> 
+0

ich versucht habe, hinzufügen marinLeft oder paddingLeft, wenn ich es einen Raum auf dem linken Bildschirm machen bewegen, nicht wie erwartet. –

+0

aktualisiert die Antwort :) – Bob

+0

Ja, es funktionierte mit Android: paddingLeft = "16dp" und Android: clipToPadding = "false"> VOte für Ihre Antwort. Vielen Dank. –

Verwandte Themen