2016-06-16 2 views
0

Ich habe Probleme mit einem ListView. Grundsätzlich habe ich diese versteckte ListView, die auf einem TextView-Klick angezeigt werden soll. Das funktioniert ok. Wenn ich auf ein Element der ListView klicke, würde ich gerne ein anderes Layout (mit einem TextView & einem FloatingButton) anzeigen. Das Problem ist, dass wenn ich das LinearLayout zeige, ich nicht mehr auf das ListItem klicken kann. Irgendwelche Vorschläge?ListView-Elemente sind nicht anklickbar, wenn ich ein LinearLayout als Geschwister zeige

Hier einige Code: Layout.xml

<ListView 
      android:id="@+id/meal_insertion_meals_portions_list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/meal_insertion_location" 
      android:layout_above="@id/meal_insertion_add_container"/> 

     <LinearLayout 
      android:id="@id/meal_insertion_add_container" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_centerHorizontal="true" 
      android:gravity="center_horizontal" 
      android:orientation="vertical" 
      android:padding="8dp"> 

      <android.support.design.widget.FloatingActionButton 
       android:id="@+id/meal_insertion_add_meal_button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:clickable="true" 
       android:focusable="false" 
       android:focusableInTouchMode="false" 
       android:src="@drawable/ic_add" 
       android:tint="@android:color/white" 
       app:backgroundTint="@color/colorPrimary"/> 

      <TextView 
       android:id="@+id/meal_insertion_add_meal_text" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="4dp" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="@string/diary.meal.insertion.aliment.add" 
       android:textColor="@color/colorPrimary"/> 


     </LinearLayout> 

Fragment.java

mealSelector.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (selectorList.getVisibility() == View.VISIBLE) { 
        selectorList.setVisibility(View.GONE); 
        mealLocation.setVisibility(View.VISIBLE); 
       } else { 
        selectorList.setVisibility(View.VISIBLE); 
        mealLocation.setVisibility(View.GONE); 
       } 
      } 
     }); 

     selectorList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       TextView t1 = (TextView) view.findViewById(android.R.id.text1); 
       mealSelector.setText(t1.getText()); 
       selectorList.setVisibility(View.GONE); 
       mealLocation.setVisibility(View.VISIBLE); 
       addLayoutContainer.setVisibility(View.VISIBLE); 
      } 


     } 

    ); 
+1

"Das Problem ist, dass ich, wenn ich das LinearLayout zeige, nicht mehr auf das ListItem klicken kann." - Versteckst du nicht die 'ListView', wenn du auf ein Objekt klickst und das' LinearLayout' zeigst? 'selectorList.setVisibility (View.GONE);' Sprechen Sie darüber? –

+0

Wenn ich erneut auf den TextView klicke, werde ich den listView erneut anzeigen, und ich möchte einen beliebigen anderen Eintrag auswählen. Das Problem ist, dass Elemente nicht mehr anklickbar sind, wenn addLayoutContainer sichtbar ist. –

+0

Ah, OK. Sind Sie sicher, dass etwas Ihre "ListView" irgendwie nicht abdeckt und die Klicks blockiert? –

Antwort

0

THIS nicht die richtige Lösung - nur eine Abhilfe:

Ich verstecke nur die ContainerLayout wieder wenn ich die ListView zeige. Damit kann ich wieder auf Elemente klicken.

WIEDER: Immer noch auf der Suche nach einer besseren Lösung.

0

unten Lösungen Versuchen Sie, Änderung Listview, android: layout_height = "wrap_content" auf Android: layout_height = "match_parent", zusätzlich versuchen, mit dem Entfernen von android: anklickbare = "true" android: fokussierbarem = "false" android: focusableInTouchMode = "false" von der schwebenden Taste.

+0

Nein, das hat nicht funktioniert :( –

Verwandte Themen