如何检测对 tablayout 中每个选项卡的点击?
How to detect a click on every single tab in tablayout?
我有一个带有未确定页面的 viewpager,因为用户也可以添加页面。没关系,但我不知道如何让我的用户可以删除这些页面。我尝试使用下面的代码在每个选项卡上实现长按监听器,但它不起作用。
那么如何检测点击了哪一个标签呢?
for (tabCounter = 0; tabCounter < DataOfPages.size(); tabCounter++) {
tabLayout.getTabAt(tabCounter).setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
dataSource.open();
dataSource.deleteById(tabCounter);
dataSource.close();
setupViewPager(viewPager);
return true;
}
});
}
每个 TAB
的 LongClick
监听器的实现:
LinearLayout tabStrip = (LinearLayout) tabLayout.getChildAt(0);
for (int i = 0; i < tabStrip.getChildCount(); i++) {
// Set LongClick listener to each Tab
tabStrip.getChildAt(i).setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(getApplicationContext(), "Tab clicked" , Toast.LENGTH_SHORT).show();
return true;
}
});
}
希望对你有所帮助~
我有一个带有未确定页面的 viewpager,因为用户也可以添加页面。没关系,但我不知道如何让我的用户可以删除这些页面。我尝试使用下面的代码在每个选项卡上实现长按监听器,但它不起作用。
那么如何检测点击了哪一个标签呢?
for (tabCounter = 0; tabCounter < DataOfPages.size(); tabCounter++) {
tabLayout.getTabAt(tabCounter).setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
dataSource.open();
dataSource.deleteById(tabCounter);
dataSource.close();
setupViewPager(viewPager);
return true;
}
});
}
每个 TAB
的 LongClick
监听器的实现:
LinearLayout tabStrip = (LinearLayout) tabLayout.getChildAt(0);
for (int i = 0; i < tabStrip.getChildCount(); i++) {
// Set LongClick listener to each Tab
tabStrip.getChildAt(i).setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(getApplicationContext(), "Tab clicked" , Toast.LENGTH_SHORT).show();
return true;
}
});
}
希望对你有所帮助~