gpt4 book ai didi

android - 无法单击 Horizo​​ntalScrollView 中的列表项

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:28 24 4
gpt4 key购买 nike

我注意到,通过添加 Horizo​​ntalScrollView,我无法在 ListView 上选择项目。这似乎是一个想要添加的非常基本/常见的功能(我希望能够向左滑动我的项目以提供删除选项)但是 Horizo​​ntalScrollView 似乎与您想要的项目不兼容喜欢也触摸选择。请注意,如果我将 Horizo​​ntalScrollView 更改为 LinearLayout,否则项目将变为可选。

我怀疑 touch listeners 可能无效,因为滑动功能 overrides 任何其他类型的触摸,但我真的想不出为什么否则它不起作用。任何人都可以帮助解决这个问题吗?我希望能够将 Horizo​​ntalScrollViewclick compatibility 一起使用(除非有另一种方法可以实现相同的功能)。

<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none">


<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<android.support.constraint.ConstraintLayout
android:id="@+id/constraintLayout4"
android:layout_width="384dp"
android:layout_height="110dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<TextView
android:id="@+id/task_view_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="17dp"
android:layout_marginTop="28dp"
android:fontFamily="@font/robotolight"
android:text="@string/task_name"
android:textColor="@android:color/black"
android:textSize="24sp"
app:layout_constraintStart_toEndOf="@+id/task_view_icon"
app:layout_constraintTop_toTopOf="parent" />

<ImageView
android:id="@+id/task_view_icon"
android:layout_width="77dp"
android:layout_height="77dp"
android:layout_marginStart="17dp"
android:layout_marginTop="17dp"
android:contentDescription="@+string/icon"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/main_page_icon_switch_x4" />

<TextView
android:id="@+id/task_view_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginTop="36dp"
android:fontFamily="@font/robotolight"
android:text="@string/duration"
android:textColor="@android:color/black"
android:textSize="14sp"
app:layout_constraintStart_toEndOf="@+id/task_view_name"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/task_view_detail"
android:layout_width="228dp"
android:layout_height="31dp"
android:layout_marginStart="17dp"
android:fontFamily="@font/robotolight"
android:text="@string/task_view_detail_literal"
android:textColor="@android:color/black"
android:textSize="12sp"
app:layout_constraintStart_toEndOf="@+id/task_view_icon"
app:layout_constraintTop_toBottomOf="@+id/task_view_name" />



</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:id="@+id/task_delete"
android:layout_width="116dp"
android:layout_height="110dp"
android:background="@color/colorPrimary"
app:layout_constraintEnd_toEndOf="@id/constraintLayout4"
app:layout_constraintTop_toTopOf="parent">

<TextView
android:id="@+id/task_delete_literal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="13dp"
android:layout_marginTop="39dp"
android:fontFamily="@font/roboto_regular"
android:text="@string/delete"
android:textColor="@android:color/background_light"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
</LinearLayout>
</HorizontalScrollView>

最佳答案

对于遇到此问题的任何人,我设法找到了解决此问题的方法。我的问题是由于 XML 中的 Horizo​​ntalScrollView 设置,我无法点击 ListView 项目,但是在我的例子中,我使用了一个适配器和我的 ListView(允许您将 listView 与实际的列表行 View 链接起来),在该适配器中,我简单地定义并链接了我想要按下的 View 的容器,并设置了一个 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();
}
});

关于android - 无法单击 Horizo​​ntalScrollView 中的列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47898389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com