TabLayout ohne Verwendung von ViewPager

Lesezeit: 3 Minuten

Benutzer-Avatar
Eleojasmil J Milagrosa

Ich möchte eine implementieren TabLayout weil es einfach ist, aber alle Tutorials, die ich gefunden habe, beinhalten a ViewPager. Ich möchte nur so etwas wie OnClickListener wo wenn ich auf die klicke Add Symbol, es wird ein Toast angezeigt, der “Tab 1” anzeigt, und wenn ich auf ein Kalendersymbol klicke, wird ein Toast angezeigt, der “Tab 2” anzeigt.

Ich möchte verwenden TabLayout weil es Geräterotationen handhabt.

Main_activity.java

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
    // Add five tabs.  Three have icons and two have text titles
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.add_live));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.calendar_live));
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.group_live));
    tabLayout.addTab(tabLayout.newTab().setText("Send"));
    tabLayout.addTab(tabLayout.newTab().setText("Send & Post"));

}

}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:app="http://schemas.android.com/tools">

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

</RelativeLayout>

  • Sie können hier verweisen: androidexample.com/Tab_Layout_%7C_TabBar_-_Android_Example/…

    – Benutzerlernen

    11. November 2015 um 9:09 Uhr

  • Ich würde persönlich immer noch einen Viewpager für die Übergangsanimationen verwenden, aber die Möglichkeit für den Benutzer zum Wischen deaktivieren: stackoverflow.com/a/9650884/1219389

    – PPartisan

    11. November 2015 um 9:12 Uhr

Benutzer-Avatar
Eleojasmil J Milagrosa

ich fand addOnTabSelectedListener:

    tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            if(tabLayout.getSelectedTabPosition() == 0){
                Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show();
            }else if(tabLayout.getSelectedTabPosition() == 1){
                Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show();
            }else if(tabLayout.getSelectedTabPosition() == 2){
                Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show();
            }else if(tabLayout.getSelectedTabPosition() == 3){
                Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show();
            }else if(tabLayout.getSelectedTabPosition() == 4){
                Toast.makeText(MainActivity.this, "Tab " + tabLayout.getSelectedTabPosition(), Toast.LENGTH_LONG).show();
            }
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });
}

  • Ist es möglich, ein benutzerdefiniertes Layout für Registerkarten ohne Pager auf die obige Weise zu übergeben?

    – Min2

    6. April 2016 um 6:55 Uhr

  • ja du kannst. .versuchen Sie es mit. tabLayout.addView(View)

    – Eleojasmil J Milagrosa

    7. April 2016 um 1:07 Uhr

  • Keine Ahnung, warum dies so schwer zu finden war, aber vielen Dank für das Posten. Nebenbei bemerkt habe ich auch die Tab-Tags (setTag()) gesetzt, damit ich referenzieren konnte, auf welches geklickt wurde.

    – PGMacDesign

    14. Juli 2016 um 19:15 Uhr

  • Verwenden Sie addOnTabSelectedListener anstelle von setOnTabSelectedListener

    – Marcin D

    22. Juli 2016 um 21:06 Uhr

  • @EleojasmilJMilagrosa, @Min2: Sie können nur eine hinzufügen instance of TabItem über addView Methode erwähnt.

    – Rat-a-tat-a-tat Ratatouille

    15. Januar 2018 um 14:12 Uhr

Benutzer-Avatar
hat

Eine alternative Lösung zur akzeptierten Antwort mit Tab.getPosition statt TabLayout.getSelectedTabPosition Methode.

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
    @Override
    public void onTabSelected(TabLayout.Tab tab) {
        Toast.makeText(
            MainActivity.this, "Tab " + tab.getPosition(), Toast.LENGTH_LONG
        ).show();
    }

    @Override
    public void onTabUnselected(TabLayout.Tab tab) {
    }

    @Override
    public void onTabReselected(TabLayout.Tab tab) {
    }
});

1245610cookie-checkTabLayout ohne Verwendung von ViewPager

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy