2023年7月13日发(作者:)
CoordinatorLayout+AppBarLayout的简单使⽤及解决滑动抖动问题第⼀步: 导⼊相应的design包1 dependencies {2 ......3 implementation 't:design:27.1.0'4 }第⼆步:布局⽂件 1
10
14
20
10 @Override11 protected void onCreate(Bundle savedInstanceState) {12 te(savedInstanceState);13 setContentView(ty_main);14 initData();15 initRecycView();16 }17
18 private void initRecycView() {19 recyclerView = findViewById(erview);20 outManager(new LinearLayoutManager(,21 AL, false));22 pter(new TextviewAdapter());23
24 }25
26 private void initData() {27 mDataList = new ArrayList<>();28 for (int i = 0; i < 26; i++) {29 ("测试数据" + i);30 }31 }32
33 public class TextviewAdapter extends r
42 @Override43 public void onBindViewHolder(@NonNull ViewHolder holder, int position) {44 t((position));45 }46
47 @Override48 public int getItemCount() {49 return ();50 }51
52 class ViewHolder extends lder{53 private final TextView mText;54
55 public ViewHolder(View itemView) {56 super(itemView);57 mText = ewById(ew);58 }59 }60 }61 }
第三步:解决滑动抖动问题 1 /** 2 * @author Sigal 3 * on 2018/11/26 4 * note: 解决AppBarLayout滑动时抖动问题 5 */ 6 public class FixAppBarLayout extends or { 7 private static final String TAG = "AppBarLayoutBehavior"; 8
9 public FixAppBarLayout() {10 super();11 }12
13 public FixAppBarLayout(Context context, AttributeSet attrs) {14 super(context, attrs);15 }16
17 @Override18 public boolean onInterceptTouchEvent(CoordinatorLayout parent, AppBarLayout child, MotionEvent ev) {19 if (ion() == ACTION_DOWN) {20 Object scroller = getSuperSuperField(this, "mScroller");21 if (scroller != null && scroller instanceof OverScroller) {22 OverScroller overScroller = (OverScroller) scroller;23 nimation();24 }25 }26
27 return rceptTouchEvent(parent, child, ev);28 }29
30 private Object getSuperSuperField(Object paramClass, String paramString) {31 Field field = null;32 Object object = null;33 try {34 field = ss().getSuperclass().getSuperclass().getDeclaredField(paramString);35 essible(true);36 object = (paramClass);37 } catch (Exception e) {38 tackTrace();39 }40 return object;41 }42 }注:在布局⽂件中引⽤:app:layout_behavior="BarLayout"
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689215439a222195.html
评论列表(0条)