2017-12-20 15 views
4

HorizontalScrollView을 추가하여 내 ListView에서 항목을 선택할 수 없습니다. 이것은 꽤 기본/일반적인 기능 (왼쪽에 내 항목을 삭제 옵션을 제공 할 수 있도록하고 싶다)을 추가하고 싶지만 HorizontalScrollView은 선택하기 위해 터치하고 싶은 항목과 호환되지 않는 것으로 보입니다. HorizontalScrollViewLinearLayout으로 변경하면 항목을 선택할 수있게됩니다.HorizontalScrollView에서 목록 항목을 클릭 할 수 없음

나는 touch listeners이 스 와이프 기능이 다른 종류의 터치가 아니기 때문에 비효율적 일 수 있다고 생각했지만 실제로 그렇지 않은 이유는 생각할 수 없습니다. 누구든지이 문제를 해결할 수 있습니까? 동일한 기능을 수행하는 또 다른 방법이없는 한 HorizontalScrollViewclick 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> 
+0

RecyclerView과 수평의 ListView를 구축하는 방법을 시도? https://stackoverflow.com/questions/28460300/how-to-build-a-horizontal-listview-with-recyclerview – R2R

+0

내가 오해하면 용서하지만 세로 ListView 행에 가로 스크롤을 찾고, 수평 ListView가 아닙니다. – MadThink

+0

스크린 샷의 예를 공유 할 수 있습니까? – R2R

답변

0

이 문제가있는 사람은 누구나이 문제를 해결할 수있는 방법을 찾을 수있었습니다. 내 문제는 내가 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(); 
     } 
    });