java - 我的线性布局只闪烁背景颜色,而不是在 Android 中持续存在
问题描述
我有一个回收站视图,其中包含应该可点击的线性布局列表。选择后,我希望更改背景颜色,但我无法做到这一点。使用我现在拥有的代码,选定的线性布局只是闪烁一种颜色,然后恢复为白色/透明。我怎样才能使它一旦被选中,颜色就会保持不变?
xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listcontentlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/selector">
选择器背景可绘制(主要的深色正在闪烁):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Active Row-->
<item android:state_selected="true" android:state_focused="false"
android:state_pressed="false" android:drawable="@color/colorAccent" />
<!-- Pressed Row -->
<item android:state_pressed="true" android:drawable="@color/colorPrimaryDark" /> />
线性布局也在主/详细流的回收器视图内,这是 onClick 方法
private final View.OnClickListener mOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
DummyContent.DummyItem item = (DummyContent.DummyItem) view.getTag();
if (mTwoPane) {
Bundle arguments = new Bundle();
arguments.putString(ItemDetailFragment.ARG_ITEM_ID, item.id);
ItemDetailFragment fragment = new ItemDetailFragment();
fragment.setArguments(arguments);
mParentActivity.getSupportFragmentManager().beginTransaction()
.replace(R.id.item_detail_container, fragment)
.commit();
} else {
谢谢!如果您需要更多信息,请告诉我。
(这就是我想要的样子)
解决方案
在 LinearLayout 的 onClick 方法上设置 linearLayout.setSelected(true)
如果您已将 clicklistener 设置为 LinearLayout,则使用以下代码段,
@Override
public void onClick(View view) {
view.setSelected(true)
//Your code
}
推荐阅读
- python - 运行此代码时,我似乎遇到了多个错误
- sails.js - 错误号:'ETIMEDOUT',将 gcloud mysql 与sails js 连接时
- xml - 试图从我的 xml 的 xslt 中的两个循环中添加信息
- strapi - STRAPI:运行命令开发时出错:未定义
- c++ - Makefile 中的 C++ 未定义引用
- time-series - ARIMA 非常适合,但在预测中返回“Nan”
- or-tools - 带有可替代物品的多个背包
- azure - 如何在 Azure 管道上运行空手道 API 测试
- java - java.io.FileNotFoundException,mkdir 不能正常工作?
- firebase - '类型'_InternalLinkedHashMap
' 不是类型 'Map 的子类型 ' ' 是我收到的错误