Android开发-义无反顾的踩坑

一、Layout

1、ConstraintLayout

有没有遇到过在ConstraintLayout中明明各种topToTop,topToBottom等xxx的都弄好了,但是控件的位置就是不正确呢?有没有遇到过在ConstraintLayout中设置好ViewPager以及RecyclerView后莫名丢失列表数据的问题呢?

解决之道:试试将出问题的控件的宽高都设置为“0dp”,然后再进行测试吧!

2、Toolbar

给toolbar设置setNavigationOnClickListener()后点击却没有反应?

解决之道:试试下面的代码,注意顺序不能颠倒!!

setSupportActionBar(toolbar);
toolbar.setNavigationOnClickListener(xxx)

二、Adapter

1、无法覆盖onBindViewHolder(,)

当我们自定义一个RecyclerView的Adapter的时候是不是经常习惯写一个内部类BaseViewHolder呢,然后在onBindViewHolder(,)方法中,我们也通常会调用一个抽象方法bind(,)啦、或者convert(,)啦,然后让子类去实现定义的抽象方法呢?但是有时候明明子类实现了抽象方法,编辑器不提示错误,但是无法编译通过,经常提示我们无法覆盖onBindViewHolder(,)方法啥啥的。

解决之道:试试将内部类BaseViewHolder直接拿出来作为单独的一个类。

三、控件

1、ImageView设置selector不起作用

对于其他的text或者layout设置背景时,item顺序问题没有作用。但是到ImageView的时候,就需要将各state为true的放在最上面,然后下面才写默认情况。如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@mipmap/ic_certificate_personal_white" android:state_selected="true" />
    <item android:drawable="@mipmap/ic_certificate_personal_green" />
</selector>

其他人还说在ImageView的代码中需要加入一句 android:clickable=”true” ,这里我测试后发现如果是按照上面方式写的selector,那么不加这句也是可以的。

发布了40 篇原创文章 · 获赞 47 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/u010976213/article/details/79624835
今日推荐