首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安卓ListView ItemClickListener与HorizontalScrollView不能正常工作

安卓ListView ItemClickListener与HorizontalScrollView不能正常工作
EN

Stack Overflow用户
提问于 2019-07-15 22:10:07
回答 1查看 84关注 0票数 1

我的OnItemClickListener不能正常工作。我有一个带有ListView的自定义对话框布局。ListView将TextViews保存为Item。TextView应该是可滚动的,所以我将TextView放在HorizontalScrollView中,因为我的文本可能会变长。

但现在的问题是,只有当我删除我的ScrollView时,才不会调用OnItemClickListener。

这是我的ListView项目XML:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <HorizontalScrollView android:layout_width="fill_parent"
        android:id="@+id/scrollView"
        android:layout_height="fill_parent"
        android:scrollbars="none">

        <TextView
            android:id="@+id/tv"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:scrollHorizontally="true"
            android:textColor="#fff"
            android:singleLine="true"
            android:paddingLeft="15dp"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:gravity="center_vertical"
            />
    </HorizontalScrollView>

    <View
        android:layout_width="match_parent"
        android:layout_height="10dp"
        android:background="#000"/>
</LinearLayout>

下面是我如何设置On Item click Listener的方法:

代码语言:javascript
复制
ListView listView = builder.findViewById(R.id.listviewDialog);
        listView.setClickable(true);

        ArrayAdapter arrayAdapter = new ArrayAdapter(ContextActivity, R.layout.list_item2, R.id.tv, aListe);

        listView.setAdapter(arrayAdapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                //
            }
        });

当我将以下属性添加到我的项目XML的最顶层布局时,它会起作用:

代码语言:javascript
复制
android:descendantFocusability="blocksDescendants" 

但是,只有当我没有点击文本时,我的点击事件才会触发。

有谁可以帮我?

编辑:

W0rmH0le在这里发布了解决方案。基本上,我需要EditText,而不是TextView:Horizontal scroll on textview on android?

EDIT2:在项目上点击仍然破坏了可聚焦的false等复选框,但是TextView和EditText不起作用。所以现在我的EditText得到了点击监听器,而不是listView

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57041561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档