问题:LinearSmoothScroller,有时不会滑动-2020-5-25
场景:
bottom_list.setVisibility(View.VISIBLE);//一开始列表是隐藏,这是用于列表显示
RecyclerView recyclerView = (RecyclerView) mapLayout.findViewById(R.id.recycler_view);
LinearLayoutManager linelarLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(linelarLayoutManager);
map_bottom_Adapter adapter = new map_bottom_Adapter(getActivity(), tips,mMapView);
recyclerView.setAdapter(adapter);
//平移
LinearSmoothScroller s1 = new map_bottom_Adapter.TopSmoothScroller(getActivity());
s1.setTargetPosition(5);
linelarLayoutManager.startSmoothScroll(s1);
一进页面列表是隐藏但是渲染好的,通过点击显示列表,进行移到某个位置,但是不会滑动
解决:
bottom_list.setVisibility(View.VISIBLE);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//要执行的操作
RecyclerView recyclerView = (RecyclerView) mapLayout.findViewById(R.id.recycler_view);
LinearLayoutManager linelarLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(linelarLayoutManager);
map_bottom_Adapter adapter = new map_bottom_Adapter(getActivity(), tips,mMapView);
recyclerView.setAdapter(adapter);
LinearSmoothScroller s1 = new map_bottom_Adapter.TopSmoothScroller(getActivity());
s1.setTargetPosition(5);
linelarLayoutManager.startSmoothScroll(s1);
}
}, 300);//0.3秒后执行Runnable中的run方法
让滑动延时一段时间后再进行,我设置300,你可以根据自己改