Android 无法在水平滚动视图中单击列表项

Android 无法在水平滚动视图中单击列表项,android,listview,horizontalscrollview,Android,Listview,Horizontalscrollview,我注意到,通过添加水平滚动视图,我无法在列表视图上选择项目。这似乎是一个需要添加的非常基本/常见的功能(我希望能够向左滑动我的项目以提供删除选项),但是HorizontalScrollView似乎与您也希望触摸选择的项目不兼容。请注意,如果我将HorizontalScrollView更改为LinearLayout或其他方式,则项目将变为可选 我怀疑touch监听器可能无效,因为刷卡功能覆盖了任何其他类型的触摸,但我真的想不出为什么它不起作用。有人能帮助解决这个问题吗?我希望能够使用水平滚动视图和

我注意到,通过添加
水平滚动视图
,我无法在
列表视图
上选择项目。这似乎是一个需要添加的非常基本/常见的功能(我希望能够向左滑动我的项目以提供删除选项),但是
HorizontalScrollView
似乎与您也希望触摸选择的项目不兼容。请注意,如果我将
HorizontalScrollView
更改为
LinearLayout
或其他方式,则项目将变为可选

我怀疑
touch监听器
可能无效,因为刷卡功能
覆盖了任何其他类型的触摸,但我真的想不出为什么它不起作用。有人能帮助解决这个问题吗?我希望能够使用
水平滚动视图
单击兼容性
(除非有其他方法实现相同的功能)


对于任何有此问题的人,我都设法找到了解决方法。我的问题是,由于XML中的
HorizontalScrollView
设置,我无法单击
ListView
项,但是在我的例子中,我使用了一个适配器以及
ListView
(这允许您将
ListView
与实际的列表行视图链接)在这个适配器中,我只定义并链接了视图的容器,我想按下它并设置一个
onClickListener

这将进入您的自定义适配器:

ConstraintLayout myLayout = convertView.findViewById(R.id.constraintLayout1);
    ConstraintLayout anotherLayout = convertView.findViewById(R.id.constraintLayout2); //lets' say I'm using this to delete the item when clicked



    myLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent exampleIntent = new Intent(viewParent.getContext(), SomeActivity.class); 
        }
    });
    anotherLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(view.getContext());

            builder.setMessage("Are You Sure?").setNegativeButton("No", null);
            builder.setPositiveButton("yes", new android.support.v7.app.AlertDialog.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    Database database = new Database(viewParent.getContext());
                    database.deleteItem(item);

                    List<Item> items = database.getItems();
                    ListView list = (ListView) viewParent.findViewById(R.id.my_linear_list);

                    //List<Item> items = new Database(viewParent.getContext()).getItems();

                    TaskAdapter adapterNew = new ItemAdapter(viewParent.getContext(), tasks);

                    list.setAdapter(adapterNew);
                }
            });
            builder.show();
        }
    });
ConstraintLayout myLayout=convertView.findViewById(R.id.constraintLayout1);
ConstraintLayout anotherLayout=convertView.findViewById(R.id.constraintLayout2)//假设我在单击时使用此选项删除项目
myLayout.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent exampleIntent=新意图(viewParent.getContext(),SomeActivity.class);
}
});
anotherLayout.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
android.support.v7.app.AlertDialog.Builder=新的android.support.v7.app.AlertDialog.Builder(view.getContext());
setMessage(“你确定吗?”).setNegativeButton(“否”,空);
builder.setPositiveButton(“是”,新的android.support.v7.app.AlertDialog.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
数据库=新数据库(viewParent.getContext());
数据库。删除项(项);
List items=database.getItems();
ListView列表=(ListView)viewParent.findViewById(R.id.my\u线性\u列表);
//列表项=新数据库(viewParent.getContext()).getItems();
TaskAdapter adapterNew=新的ItemAdapter(viewParent.getContext(),tasks);
列表.setAdapter(adapterNew);
}
});
builder.show();
}
});

尝试如何使用RecyclerView构建水平列表视图?如果我误解了,请原谅,我希望水平滚动到垂直的ListView行,而不是水平的ListView。您能分享一个屏幕截图示例吗?这不是回答您的问题,但我可以问一下2
ConstraintLayout
s@Kiya我尝试了一些组合。经过一些尝试和错误,我可能会有一个解决方案(我还没有在网上看到),我将在今天晚些时候在这里发布。
ConstraintLayout myLayout = convertView.findViewById(R.id.constraintLayout1);
    ConstraintLayout anotherLayout = convertView.findViewById(R.id.constraintLayout2); //lets' say I'm using this to delete the item when clicked



    myLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent exampleIntent = new Intent(viewParent.getContext(), SomeActivity.class); 
        }
    });
    anotherLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(view.getContext());

            builder.setMessage("Are You Sure?").setNegativeButton("No", null);
            builder.setPositiveButton("yes", new android.support.v7.app.AlertDialog.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    Database database = new Database(viewParent.getContext());
                    database.deleteItem(item);

                    List<Item> items = database.getItems();
                    ListView list = (ListView) viewParent.findViewById(R.id.my_linear_list);

                    //List<Item> items = new Database(viewParent.getContext()).getItems();

                    TaskAdapter adapterNew = new ItemAdapter(viewParent.getContext(), tasks);

                    list.setAdapter(adapterNew);
                }
            });
            builder.show();
        }
    });