// 轮播图,主活动中设置
@SuppressLint({"MissingInflatedId", "LocalSuppress"}) ViewPager2 viewPager2 =findViewById(R.id.viewpager);
viewPager2.setAdapter(new Adapter(MainActivity.this));
RadioButton button=findViewById(R.id.dot2);
button.setBackgroundResource(R.drawable.dot_selected);
//fragment中
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v1=LayoutInflater.from(context).inflate(R.layout.fragment_home, null, false);
dots.add(v1.findViewById(R.id.dot1));
dots.add(v1.findViewById(R.id.dot2));
dots.add(v1.findViewById(R.id.dot3));
dots.add(v1.findViewById(R.id.dot4));
dots.add(v1.findViewById(R.id.dot5));
View v=inflater.inflate(R.layout.recycle_picture_fragment, container, false);
ImageView view=v.findViewById(R.id.imgView);
view.setImageResource(imgs.get(index));
return v;
}
@Override
public void onResume() {
Log.d("OnResume","Onresume调用");
super.onResume();
Log.d("LIST",dots.size()+"");
dots.get(0).setBackgroundResource(R.drawable.dot_selected);
// dots.get(adapter.nowIndex).setBackgroundResource(R.drawable.dot_unselected);
// adapter.nowIndex=index;
// dots.get(adapter.nowIndex).setBackgroundResource(R.drawable.dot_selected);
}
望采纳!!新年快乐🎉🎉
你可以使用 viewpager2 调用registerOnPageChangeCallback,去监听 viewPager2 滑动监听。
可在onPageSelected 回调方法里面,通过 position 来设置按钮选中的样式,然后再去设置集合 dots 里面其他位置的按钮背景清空。
serBackground(null)
这个是fragment的生命周期的问题,看看日志,这个resume是否执行,还有一点就是更改UI只能在主线程中进行。
不知道你这个问题是否已经解决, 如果还没有解决的话: