首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不使用ViewPager的TabLayout

不使用ViewPager的TabLayout
EN

Stack Overflow用户
提问于 2015-11-11 16:19:05
回答 2查看 45.6K关注 0票数 63

我想实现一个TabLayout,因为它很简单,但我找到的所有教程都涉及到ViewPager。我只想要像OnClickListener这样的东西,如果我点击Add图标,它将显示一个显示"tab 1“的吐司,如果我单击一个日历图标,它将显示一个显示"tab 2”的吐司。

我想使用TabLayout,因为它可以处理设备旋转。

Main_activity.java

代码语言:javascript
复制
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

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-12 08:02:05

我找到了setOnTabSelectedListener

代码语言:javascript
复制
    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) {

        }
    });
}
票数 91
EN

Stack Overflow用户

发布于 2021-02-12 16:19:49

使用Tab.getPosition而不是TabLayout.getSelectedTabPosition方法的可接受答案的替代解决方案。

代码语言:javascript
复制
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) {
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33646586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档