Rob*_*ont 5 android ripple android-recyclerview recyclerview-layout
我试图在我的 RecyclerView 上实现涟漪效应。这是我的布局:
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card"
android:layout_marginTop="7dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardCornerRadius="5dp"
android:clickable="true"
card_view:cardElevation="5dp"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
//some properties />
<TextView
//some properties />
<TextView
//some properties />
</LinearLayout>
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)
为了实现 onclick 监听器,我基本上遵循了本教程:http : //sapandiwakar.in/recycler-view-item-click-handler/
问题是涟漪效应,由于线条而产生:
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground"
Run Code Online (Sandbox Code Playgroud)
不适用于轻型(即快速)印刷机。当我快速点击屏幕时,点击监听器被触发。这意味着已检测到触摸事件,但没有显示涟漪效应。如果我想看到涟漪效果,我必须在释放之前在屏幕上保持一段时间的压力。
有没有办法纠正这种行为并即使在快速按下时也能显示涟漪效应?
我遇到了类似的问题。我在 RecyclerView 上有一个 ItemClickListener,在那个监听器中我正在推送一个新片段。通过反复试验,我注意到删除或清空项目单击侦听器会每次都显示突出显示,即使是轻按也是如此。
解决方法是更改我的 onItemClick 方法:
@Override
public void onItemClick(final RecyclerView parent, final View view, final int position, final long id)
{
ViewCompat.postOnAnimationDelayed(parent, new Runnable()
{
@Override
public void run()
{
// Your click code goes here
}
}, 50);
}
Run Code Online (Sandbox Code Playgroud)
这会将您的点击操作推迟到下一个动画步骤之后的 50 毫秒,并在执行您的点击操作之前为动画提供足够的时间来加载和运行。
| 归档时间: |
|
| 查看次数: |
1504 次 |
| 最近记录: |