2016-06-16 2 views
0

У меня возникают проблемы с ListView. В принципе, у меня есть этот скрытый ListView, который будет отображаться на клике TextView. Это работает нормально. Когда я нажимаю на элемент списка ListView, я хотел бы показать еще один макет (содержащий TextView & FloatingButton). Проблема в том, что когда я показываю LinearLayout, я больше не могу нажимать на ListItem. Какие-либо предложения?Элементы ListView не доступны для просмотра, когда я показываю LinearLayout как родной брат

Вот код: 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

«Проблема в том, что когда я показываю LinearLayout, я больше не могу нажимать на ListItem». - Не скрываете ли вы «ListView», когда вы нажимаете на элемент и показываете «LinearLayout»? 'selectorList.setVisibility (View.GONE);' Это то, о чем вы говорите? –

+0

Если я снова нажму на TextView, я снова покажу listView, и я могу выбрать какой-либо другой элемент. Проблема заключается в том, что элементы больше не доступны для кликов при видимости addLayoutContainer. –

+0

А, ОК. Вы уверены, что что-то не покрывает ваш «ListView» и блокирует клики? –

ответ

0

ЭТО НЕ ПРАВИЛЬНОЕ РЕШЕНИЕ - Только обходной путь:

Я просто спрячу ContainerLayout снова, когда я показываю ListView. Это позволяет мне снова нажимать на Элементы.

СНОВА: Ищем лучшее решение.

0

Попробуйте ниже решений, изменение ListView, андроид: layout_height = "wrap_content" для андроида: layout_height = "match_parent", в дополнение попробовать с удалением андроида: кликабельны = "истинный" андроид: фокусируемый = "ложь" android: focusableInTouchMode = "false" с плавающей кнопки.

+0

Нет, это не сработало :( –

Смежные вопросы