Rya*_*rel 5 android rippledrawable android-5.0-lollipop android-recyclerview
我正在开发一个在大型设备上使用双窗格布局的应用程序,类似于此处详述的内容.布局摘要; 一个窗格包含选项列表,而另一个窗格显示从另一个窗格中选择的选项的详细信息.
现在,当选择一个选项时,会出现选择其他元素(按钮,复选框等)时出现的涟漪效应,但在动画完成后,元素将返回到之前的颜色.我想在动画完成后保留涟漪的亮点,我无法弄清楚如何实现这一目标.
这就是我的涟漪背景目前的样子.该focus选择什么都不做-无法弄清楚如何真正给要件强调.我也试过使用selected选择器,但这会立即发生,超越波纹.
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorAccent">
<item android:id="@android:id/mask"
android:drawable="@android:color/black" />
<item>
<selector>
<item android:state_focused="true"
android:drawable="@color/accent" />
</selector>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
为了重新迭代,我的问题是:是否有可能同时产生连锁效果,然后是突出显示的选择,如果是这样,怎么样?
这为我在选择时保留了波纹动画。
随着您的波纹可绘制用途:
<?xml version="1.0" encoding="utf-8"?>
<item>
<selector>
<item android:state_selected="true"
android:drawable="@color/selected_color" />
<item android:drawable="@color/normal_color" />
</selector>
</item>
</ripple>
Run Code Online (Sandbox Code Playgroud)
在您的适配器上,调用setHasStableIds(true)并实现getItemId以返回表示您的行的唯一值。
当选择一个项目时,执行以下操作:
ViewHolder oldViewHolder = (ViewHolder) recyclerView.findViewHolderForItemId(oldItemId);
oldViewHolder.itemView.setSelected(false);
ViewHolder newViewHolder = (ViewHolder) recyclerView.findViewHolderForItemId(newItemId);
newViewHolder.itemView.setSelected(true);
Run Code Online (Sandbox Code Playgroud)
同样在您的适配器中:
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
...
viewHolder.itemView.setSelected(isSelected);
...
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,聚焦选择器用于突出显示使用方向键的设备(如电视和一些旧手机)上的导航。
| 归档时间: |
|
| 查看次数: |
3073 次 |
| 最近记录: |