无法更改 TabLayout 中的选项卡
cannot change tabs in TabLayout
我是 android 编程的新手,我正在尝试通过触摸选项卡 header 文本来更改选项卡。这是我的代码
activity_main
<android.support.design.widget.AppBarLayout>
<android.support.design.widget.CollapsingToolbarLayout>
<ImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:src="@drawable/test_image"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:scaleType="centerCrop" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:background="@android:color/transparent"
app:layout_collapseMode="pin"
/>
<android.support.v7.widget.Toolbar/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
Mainactivity.java
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
此应用程序的输出是一个 tablayout,其中片段作为包含 cardview 的选项卡。现在,当我触摸选项卡 header 时,我可以切换到不同的选项卡,也可以通过在添加此
时用 finger.However 滑动片段来切换选项卡
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
CharSequence _header = tab.getText();
Selected_Tab_Header = String.valueOf(_header);
if (Selected_Tab_Header == "Tab1") {
headerImage.setImageResource(R.drawable.someImage);
}
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
});
我不能再切换选项卡了,即当我触摸选项卡时 header 虽然代码被触发(图像更改)选项卡没有切换但是仍然用手指滑动选项卡 works.Is 有任何事情我的代码中缺少?或者还有其他方法可以实现吗?
不要忘记 viewPager.setCurrentItem(tab.getPosition())
在你的 onTabSelected
:
public void onTabSelected(TabLayout.Tab tab) {
CharSequence _header = tab.getText();
Selected_Tab_Header = String.valueOf(_header);
if (Selected_Tab_Header == "Tab1") {
headerImage.setImageResource(R.drawable.someImage);
}
if (viewPager != null) {
viewPager.setCurrentItem(tab.getPosition());
}
}
希望对您有所帮助!!
我是 android 编程的新手,我正在尝试通过触摸选项卡 header 文本来更改选项卡。这是我的代码
activity_main
<android.support.design.widget.AppBarLayout>
<android.support.design.widget.CollapsingToolbarLayout>
<ImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:src="@drawable/test_image"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:scaleType="centerCrop" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:background="@android:color/transparent"
app:layout_collapseMode="pin"
/>
<android.support.v7.widget.Toolbar/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
Mainactivity.java
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
此应用程序的输出是一个 tablayout,其中片段作为包含 cardview 的选项卡。现在,当我触摸选项卡 header 时,我可以切换到不同的选项卡,也可以通过在添加此
时用 finger.However 滑动片段来切换选项卡tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
CharSequence _header = tab.getText();
Selected_Tab_Header = String.valueOf(_header);
if (Selected_Tab_Header == "Tab1") {
headerImage.setImageResource(R.drawable.someImage);
}
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
});
我不能再切换选项卡了,即当我触摸选项卡时 header 虽然代码被触发(图像更改)选项卡没有切换但是仍然用手指滑动选项卡 works.Is 有任何事情我的代码中缺少?或者还有其他方法可以实现吗?
不要忘记 viewPager.setCurrentItem(tab.getPosition())
在你的 onTabSelected
:
public void onTabSelected(TabLayout.Tab tab) {
CharSequence _header = tab.getText();
Selected_Tab_Header = String.valueOf(_header);
if (Selected_Tab_Header == "Tab1") {
headerImage.setImageResource(R.drawable.someImage);
}
if (viewPager != null) {
viewPager.setCurrentItem(tab.getPosition());
}
}
希望对您有所帮助!!