【问题标题】:Android ListView and Child selectionAndroid ListView 和子选择
【发布时间】:2016-06-17 08:56:46
【问题描述】:

我正在尝试为聊天消息(如 WhatsApp)实现列表视图

我需要在列表视图上实现选择机制,这样

i) 长按任何项目应启动列表视图操作模式(应显示已选择 1 个项目,已选择 5 个项目等...)

ii) 如果列表视图上的操作模式为 on ,则应丢弃后续单击子视图的列表项应被选中...(单击图像不应打开或下载图像)

iii) 如果不在操作模式下,点击附件应该打开附件(如果没有选择任何项目,点击附件应该打开或下载附件..)

请帮忙...

【问题讨论】:

  • 我正在尝试单击列表视图项中的图像视图。如果操作模式在图像视图上,则不应处理单击,而列表视图应处理......

标签: java android android-layout listview android-studio


【解决方案1】:

你可以创建一个 ClickInterceptor 类来处理视图和列表项的点击监听器

public class ClickInterceptor implements
       View.OnClickListener, 
       ListView.OnItemClickListener, 
       ListView.OnItemLongClickListener

这将实现您需要的所有不同的点击方法。

这样,视图和你的listview clicklistener/itemclicklistener 可以接受这个类的对象。

现在在ClickInterceptor 类中,您可以编写代码来跟踪并根据 ActionMode 状态决定发生什么。

【讨论】:

    【解决方案2】:

    公共类 ChatAttachment 扩展了 LinearLayout { 私有上下文 mContext ; 公共聊天附件(上下文上下文,AttributeSet attrs){ 超级(上下文,属性); mContext = 上下文; 在里面(); }

    public ChatAttachment(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        mContext = context;
        init();
    }
    
    private void init(){
    
    }
    
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev){
    
        if(ChatListAdapter.mActionModeEnabled){
            return true;
        }
    
        return false;
    }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 2019-02-06
      相关资源
      最近更新 更多