在RecyclerView外部单击以在RecyclerView行中隐藏ChildView

我有一个简单的方法RecyclerView,当您进入某行时LongClickRecyclerView我会LinearLayout在该行上显示隐藏的内容为此,public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)我正在使用以下

LinearLayout REACTION_LAYOUT = RecyclerItem.FindViewById<LinearLayout>(Resource.Id.reaction_layout);
RecyclerItem.LongClick += (sender, e) => { OnLongClick(REACTION_LAYOUT); };

REACTION_LAYOUT 是我使用以下内容显示的布局

private void OnLongClick(LinearLayout _ReactionLayout)
        {
            try
            {  
                _ReactionLayout.Visibility = ViewStates.Visible;

            }
            catch (Exception X)
            {
                Log.Info("1022585", "CLICK (ERROR) : " + X.Message);
            }
        }

这按预期工作,现在我要隐藏的是,REACTION_LAYOUT当用户触摸行外的任何位置时,这意味着在RecyclerView中的其他行或其他任何位置

我怎么做?

我尝试使用的方法是检测parent适配器内部的触摸OnCreateViewHolder,如下所示

parent.Click += (sender, e) => { OnParentClick(REACTION_LAYOUT); }; 

这可以工作,但是会禁用“回收者”视图上的滚动。

实现此目标的最佳方法是什么?

编辑:活动RecyclerView是以下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/main_message_layout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="?attr/colorPrimary"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    android:orientation="vertical"> 
  <include layout="@layout/toolbar_messages"/>   
  <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="4.5dp"
      android:layout_marginTop="3dp"
      android:background="@drawable/shadow"/>  
  <RelativeLayout     
    android:layout_width="match_parent"
    android:layout_height="fill_parent">   
  <androidx.recyclerview.widget.RecyclerView
      android:id="@+id/rvMessages"
     android:layout_width="match_parent"
      android:layout_height="wrap_content"         
      android:background="?attr/colorPrimary"      
      android:layout_alignParentTop="true"
    android:paddingBottom="70dp"/>  .......

编辑2:

还尝试设置OnTouchLisener,但仍然没有运气

public class _OnRecylerTouch_Listener : Java.Lang.Object, View.IOnTouchListener
        {
            private LinearLayout _L;
            public _OnRecylerTouch_Listener(LinearLayout L)
            {
                _L = L;
            }
            public bool OnTouch(View v, MotionEvent e)
            {
                _L.Visibility = ViewStates.Gone;
                return true;
            }
        }
GensaGames

上面是非常有线的代码。从我得到的结果来看,如果您的解决方案工作正常,但是在这种情况下嵌套滚动不起作用。

public class _OnRecylerTouch_Listener : Java.Lang.Object, View.IOnTouchListener
        {
            private LinearLayout _L;
            public _OnRecylerTouch_Listener(LinearLayout L)
            {
                _L = L;
            }
            public bool OnTouch(View v, MotionEvent e)
            {
                 if (_L.Visibility == ViewStates.VISIBLE) {
                    _L.Visibility = ViewStates.Gone;
                     return true;
                 }
                 return false;
            }
        }

接下来将您更改onLongClickListener为下一个。

private void OnLongClick(LinearLayout _ReactionLayout)
    {
        new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
           @Override
            public void run() 
            {
               try {  
                    _ReactionLayout.Visibility = ViewStates.Visible;
                 }

                catch (Exception X)
                {
                    Log.Info("1022585", "CLICK (ERROR) : " + X.Message);
                }

            }, 100);

        }
    }

而且您的问题应该得到解决。

说明

您所需要的就是不拦截触摸事件。内部滚动应该消耗哪些内容。并且onLongClickListener采取措施以onTouch正常工作后触发可见性更改这不是最佳解决方案,但这是您的问题,因此您可以找出原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检测项目外部的RecyclerView单击

来自分类Dev

在RecyclerView中隐藏视图

来自分类Dev

recyclerView中的按钮单击异常

来自分类Dev

如何在RecyclerView中隐藏视图

来自分类Dev

处理按钮在recyclerView中的行内单击

来自分类Dev

在recyclerview中单击项目时获取数据

来自分类Dev

在RecyclerView中添加按钮单击事件

来自分类Dev

以编程方式在recyclerview中单击或触摸项目

来自分类Dev

如何处理嵌套RecyclerView中的单击

来自分类Dev

在recyclerview中单击项目时获取数据

来自分类Dev

在Android中单击RecyclerView时显示错误

来自分类Dev

以编程方式在recyclerview中单击或触摸项目

来自分类Dev

在 RecyclerView 单击上替换 ViewPager 中的片段

来自分类Dev

单击时使 recyclerView 中的项目变暗

来自分类Dev

如何使特定项目响应 recyclerView 中的单击

来自分类Dev

scrollview中的childview滚动后单击延迟

来自分类Dev

scrollview中的childview滚动后单击延迟

来自分类Dev

RecyclerView中的RecyclerView:ItemDecoration

来自分类Dev

RecyclerView中的RecyclerView:ItemDecoration

来自分类Dev

RecyclerView 项中的 RecyclerView

来自分类Dev

如何隐藏 RecyclerView 项目

来自分类Dev

单击RecyclerView列表项

来自分类Dev

RecyclerView以编程方式单击

来自分类Dev

RecyclerView子项单击onBindViewHolder()

来自分类Dev

在RecyclerView中隐藏特定项目(在SharedPreferences中设置)

来自分类Dev

Kotlin:如何在另一个Recyclerview中的Recyclerview中单击项目

来自分类Dev

更新后,项目会从RecyclerView中隐藏,直到用户滚动

来自分类Dev

向上滚动ActionBar并在RecyclerView中滚动隐藏

来自分类Dev

Android:如何通过单击 RecyclerView 外部的按钮将所有数据从 RecyclerView 适配器传递到 NewActivity?

Related 相关文章

  1. 1

    检测项目外部的RecyclerView单击

  2. 2

    在RecyclerView中隐藏视图

  3. 3

    recyclerView中的按钮单击异常

  4. 4

    如何在RecyclerView中隐藏视图

  5. 5

    处理按钮在recyclerView中的行内单击

  6. 6

    在recyclerview中单击项目时获取数据

  7. 7

    在RecyclerView中添加按钮单击事件

  8. 8

    以编程方式在recyclerview中单击或触摸项目

  9. 9

    如何处理嵌套RecyclerView中的单击

  10. 10

    在recyclerview中单击项目时获取数据

  11. 11

    在Android中单击RecyclerView时显示错误

  12. 12

    以编程方式在recyclerview中单击或触摸项目

  13. 13

    在 RecyclerView 单击上替换 ViewPager 中的片段

  14. 14

    单击时使 recyclerView 中的项目变暗

  15. 15

    如何使特定项目响应 recyclerView 中的单击

  16. 16

    scrollview中的childview滚动后单击延迟

  17. 17

    scrollview中的childview滚动后单击延迟

  18. 18

    RecyclerView中的RecyclerView:ItemDecoration

  19. 19

    RecyclerView中的RecyclerView:ItemDecoration

  20. 20

    RecyclerView 项中的 RecyclerView

  21. 21

    如何隐藏 RecyclerView 项目

  22. 22

    单击RecyclerView列表项

  23. 23

    RecyclerView以编程方式单击

  24. 24

    RecyclerView子项单击onBindViewHolder()

  25. 25

    在RecyclerView中隐藏特定项目(在SharedPreferences中设置)

  26. 26

    Kotlin:如何在另一个Recyclerview中的Recyclerview中单击项目

  27. 27

    更新后,项目会从RecyclerView中隐藏,直到用户滚动

  28. 28

    向上滚动ActionBar并在RecyclerView中滚动隐藏

  29. 29

    Android:如何通过单击 RecyclerView 外部的按钮将所有数据从 RecyclerView 适配器传递到 NewActivity?

热门标签

归档