SmartRefreshLayout包裹RecyclerView点击item或者打开新页面返回出现背景变黑问题

SmartRefreshLayout包裹RecyclerView出现背景变黑,原因是我在AndroidManifest.xml设置了

<application
    android:hardwareAccelerated="false"/> //false关闭硬件加速 true打开硬件加速

这时我们将这个属性设置为true即可

application里面android:hardwareAccelerated属性设置false导致全局硬件加速关闭,网上搜索资料发现可以在Application、Activity、Window、View分别设置android:hardwareAccelerated属性

控制硬加速
  你可以在以下级别上分别控制硬加速:

Application中设置全局关闭硬件加速

<application   android:hardwareAccelerated="false">

</application>

指定Activity中设置关闭硬件加速

<application   android:hardwareAccelerated="true">

       <activity   android:hardwareAccelerated="false" />

</application>

Window(暂时用不得,感兴趣的朋友可以自行百度)

View中使用

                禁止某个View的硬件加速,注:当前不能在view级别设置硬件加速,view层有除禁止硬件加速之外的其它功能

                 view.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

判段一个View是否能被硬加速,有时一个应用了解是否启用了硬件加速是很有用的,对那些自定义View之类的东西尤其重要.在你的应用做了一些不被最新的管线所支持的自定义绘制时这更加重要.

  有两种方法可以检查应用是否被硬件加速:

        view.isHardwareAccelerated():如果View附加到一个硬件加速的window上就返回true.

        canvas.isHardwareAccelerated():如果Canvas被硬件加速了就返回true.

  如果你必须在你的绘制代码中做这个,应使用Canvas.isHardwareAccelerated()而不是View.isHardwareAccelerated().当一个view附加到一个硬件硬加速的window上,它仍可以使用非硬件加速的Canvas进行绘制操作.比如当为了高速缓存而把一个view画到一个bitmap中.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是 Kotlin 代码示例: 1. 在 RecyclerView 的 Adapter 中为每个 item 添加点击事件监听器: ```kotlin class MyAdapter(private val context: Context, private val itemList: List<Item>) : RecyclerView.Adapter<MyAdapter.ViewHolder>() { // 1. 定义一个点击事件监听器接口 interface OnItemClickListener { fun onItemClick(item: Item) } // 2. 声明一个 OnItemClickListener 变量 private var listener: OnItemClickListener? = null // 3. 提供一个公共的设置监听器的方法 fun setOnItemClickListener(listener: OnItemClickListener) { this.listener = listener } // ... override fun onBindViewHolder(holder: ViewHolder, position: Int) { val item = itemList[position] holder.bind(item) // 4. 为 item 添加点击事件监听器 holder.itemView.setOnClickListener { listener?.onItemClick(item) } } // ... } ``` 2. 在 Activity 中设置 RecyclerView 和 Adapter,并实现 OnItemClickListener 接口: ```kotlin class MainActivity : AppCompatActivity(), MyAdapter.OnItemClickListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val itemList = // 从数据源中获取 item 列表 val recyclerView = findViewById<RecyclerView>(R.id.recyclerView) recyclerView.layoutManager = LinearLayoutManager(this) val adapter = MyAdapter(this, itemList) recyclerView.adapter = adapter // 5. 设置 OnItemClickListener adapter.setOnItemClickListener(this) } // 6. 实现 OnItemClickListener 接口的方法,跳转到相应的 Activity override fun onItemClick(item: Item) { val intent = Intent(this, ItemDetailActivity::class.java) intent.putExtra("item_id", item.id) startActivity(intent) } } ``` 以上就是 Kotlin 中 RecyclerView 点击 item 跳转到 Activity 页面的实现方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值