android 吸顶标签切换,Android应用开发之Android顶部三个TabLayout,滑动到某条目之后就会切换到相应的TabLayout(代码实现)...

本文将带你了解Android应用开发Android顶部三个TabLayout,滑动到某条目之后就会切换到相应的TabLayout(代码实现),希望本文对大家学Android有所帮助。<

Android顶部三个TabLayout,滑动到某条目之后就会切换到相应的TabLayout(代码实现)

xml布局:

MainActivity中:

public class MainActivity extends AppCompatActivity implements AbsListView.OnScrollListener {

private TabLayout tb;

private ListView lv;

private ArrayList list;

private int position;

private CustomAdapter adapter1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

list = new ArrayList<>();

for (int i = 0; i <200; i++) {

list.add("龙雀" + i);

}

initView();

}

private void initView() {

tb = (TabLayout) findViewById(R.id.tb);

lv = (ListView) findViewById(R.id.lv);

adapter1 = new CustomAdapter(list,this);

lv.setAdapter(adapter1);

lv.setOnScrollListener(this);

for (int i = 0; i 

TabLayout.Tab tab = tb.getTabAt(i);

if (tab == null)

return;

Class c = tab.getClass();

try {

Field field = c.getDeclaredField("mView");

field.setAccessible(true);

final View view = (View) field.get(tab);

if (view == null)

return;

view.setTag(i);

view.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

position = (int) view.getTag();

switch (position) {

case 0:

lv.setSelection(0);

break;

case 1:

lv.setSelection(50);

break;

case 2:

lv.setSelection(70);

break;

}

}

});

} catch (Exception e) {

e.printStackTrace();

}

}

}

int post;

@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

switch (scrollState) {

case 0:

switch (post) {

case 0:

TabLayout.Tab tab = tb.getTabAt(0);

tab.select();

break;

case 50:

TabLayout.Tab tab2 = tb.getTabAt(1);

tab2.select();

break;

case 70:

TabLayout.Tab tab3 = tb.getTabAt(2);

tab3.select();

break;

}

Toast.makeText(this, "我现在处于不滑动状态", Toast.LENGTH_SHORT).show();

break;

case 1:

Toast.makeText(this, "我现在处于滑动状态", Toast.LENGTH_SHORT).show();

break;

}

}

@Override

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

switch (firstVisibleItem) {

case 0:

post = 0;

break;

case 50:

post = 50;

break;

case 70:

post = 70;

break;

case 49:

post = 0;

break;

case 69:

post = 50;

break;

}

}

}

适配器:

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值