2016-03-25 9 views
0

Ich habe eine transparente SlidingTabLayout eingebettet in meine Toolbar und eine ViewPager unten.SlidingTabView innerhalb Toolbar

Alles funktioniert gut, funktional. Die SlidingTabLayout wird jedoch nicht in der unteren linken Ecke der Toolbar angezeigt. Stattdessen wird es in der Mitte schwimmende und nach rechts:

Hier ist mein Plan:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    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:orientation="vertical"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/tool_bar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/thunderstorm2" 
     android:padding="0dp"> 

     <com.mjh.android.weathertestlayout.SlidingTabLayout 
      android:id="@+id/tab_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:backgroundTint="#88ffffff" 
      android:paddingLeft="0dp" 
      app:tabTextAppearance="@style/TextAppearance.AppCompat.Small"> 
     </com.mjh.android.weathertestlayout.SlidingTabLayout> 

    </android.support.v7.widget.Toolbar> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#ffcccc"> 
    </android.support.v4.view.ViewPager> 

</LinearLayout> 

Und hier ist der beigefügte Code:

adapter = new ViewPagerAdapter(getSupportFragmentManager(), 3); 
pager = (ViewPager) findViewById(R.id.pager); 
pager.setAdapter(adapter); 

tabs = (SlidingTabLayout) findViewById(R.id.tab_layout); 
tabs.setDistributeEvenly(true); 
tabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() { 
@Override 
public int getIndicatorColor(int position) { 
    return getResources().getColor(R.color.gray); 
}}); 
tabs.setBackgroundColor(getResources().getColor(R.color.clear)); 
tabs.setViewPager(pager); 

Jede Idee wie bekomme ich die SlidingTabLayout zurück nach links unten innerhalb meiner Toolbar?

Ich habe es auf zahlreichen Geräten und Emulatoren versucht, aber es bleibt gleich.

+0

Versuchen Verschachtelung SlidingTabLayout in einem linearen Layout (mit match_parent in der Breite und in der Höhe wrap_content). – Sevle

+0

Ich habe es getan und auch mit den LinearLayout-Parametern gespielt, aber es ändert nichts, was ich sehen kann. – JackTheCripple

Antwort

0

Ich schlage vor, dass Sie Ihre SlidingTabLayout innerhalb einer RelativeLayout verschachteln.

Dann können Sie android:layout_alignParentBottom und android:layout_alignParentLeft verwenden, um es in der unteren linken Ecke der Toolbar zu platzieren.

<android.support.v7.widget.Toolbar 
    android:id="@+id/tool_bar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/thunderstorm2" 
    android:padding="0dp"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <com.mjh.android.weathertestlayout.SlidingTabLayout 
      android:id="@+id/tab_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:backgroundTint="#88ffffff" 
      android:paddingLeft="0dp" 
      app:tabTextAppearance="@style/TextAppearance.AppCompat.Small" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true"> 
     </com.mjh.android.weathertestlayout.SlidingTabLayout> 

    </RelativeLayout> 

</android.support.v7.widget.Toolbar> 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ffcccc"> 
</android.support.v4.view.ViewPager>