1

Ich brauche eine TabLayout, die nur zwei Registerkarten auf seiner ersten Stufe zeigt.
Nach dem Wischen befindet sich die aktive Registerkarte in der Mitte, die nächste Registerkarte befindet sich auf der linken Seite und die vorherige Registerkarte befindet sich auf der rechten Seite.
Wie kann ich das tun?

Unten sind die genauen Szenario-Schnappschüsse: enter image description here enter image description here pls jemand Rat mich.?Wie zeigen Tabs nacheinander beim Streichen in einer Ansicht Pager in Android

+0

Dies soll Ihnen helfen: http://www.truiton.com/2015/06/android-tabs-example-fragments-viewpager/ –

Antwort

0

dieses coad in .xml hinzufügen

<?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" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <android.support.v7.widget.Toolbar 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     app:layout_scrollFlags="scroll|enterAlways" 
     android:id="@+id/toolbar"/> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabMode="scrollable"/> 

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

<android.support.v4.view.ViewPager 
    android:id="@+id/viewpager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
    </android.support.design.widget.CoordinatorLayout> 

wenn Sie ändern möchten tabmode Sie die App tun können: tabmode = "reparieren"

Java-Code

public class Tabmenu extends AppCompatActivity { 
private TabLayout tabLayout; 
    private ViewPager viewPager; 
    Toolbar toolbar; 

// @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_tabmenu); 

    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    toolbar.setTitle("Menus Item"); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    viewPager = (ViewPager) findViewById(R.id.viewpager); 
    setupViewPager(viewPager); 

    tabLayout = (TabLayout) findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(viewPager); 
    viewPager.setCurrentItem(item); 
      } 

    private void setupViewPager(ViewPager viewPager) { 
    ViewPagerAdapter adapter = new 
    ViewPagerAdapter(getSupportFragmentManager()); 
    adapter.addFrag(new Norththalis(), "NORTH INDIAN THALIS"); 
    adapter.addFrag(new Northmenu(), "NORTH INDIAN MENU"); 
    adapter.addFrag(new Biryani(), "BIRYANI"); 
    adapter.addFrag(new Packs(), "PACKS"); 
    adapter.addFrag(new Roles(), "ROLES"); 
    adapter.addFrag(new Sides(), "SIDES"); 
    adapter.addFrag(new Sweets(), "SWEETS"); 
    adapter.addFrag(new Beverages(), "BEVERAGES"); 

    viewPager.setAdapter(adapter); 
      } 

    class ViewPagerAdapter extends FragmentPagerAdapter { 
    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 

    public ViewPagerAdapter(FragmentManager manager) { 
     super(manager); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return mFragmentList.get(position); 
    } 

    @Override 
    public int getCount() { 
     return mFragmentList.size(); 
    } 

    public void addFrag(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mFragmentTitleList.add(title); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return mFragmentTitleList.get(position); 
    } 
     } 

      } 
+0

Wenn Sie nur drei Registerkarten haben, müssen Sie den Bildlaufmodus "fix" ändern, ansonsten "scrollbar". –

+0

Danke @ Ashutosh Tripathi für Ihre schnelle Antwort. Ich habe 30 + Folie. Ich möchte nur zwei Folien auf der ersten Folie zeigen. Während des Wischens werden die verfügbaren Tabs einzeln angezeigt. –

0

Insert ist dies in Ihrem Code, wo Sie Ihre tabLayout anpassen:

tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); 
+0

Kein Glück. Sehen Sie diese die app link sie Tab-Layout verwendet genau das, was ich will https://play.google.com/store/apps/details?id=com.qurenenglish.wordbyword&hl=de –

+0

Ihr einziges Problem ist die Anzahl der Registerkarten zu zeigen, um zu zeigen sollte drei auf einmal sein? –

0

Nach langer Zeit wurde die Lösung mit der Bibliothek PagerSlidingTabStrip gefunden.

App: pstsPaddingMiddle = "true" App: pstsTabPaddingLeftRight = "80dp"

Dies machte den Trick.

0

Verwenden

<android.support.v4.view.PagerTabStrip 
    android.support.v4.view.PagerTabStrip 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 

in xml mit ViewPager

Verwandte Themen