2012-04-13 4 views
0

Я пытаюсь составить список LinearLayout, став VISIBLE щелчком по «заголовку» LinearLayout.Android - Складной LinearLayout с несколькими пунктами

<LinearLayout android:id="@+id/sample_title" ...> 
    <TextView ... /> 
</LinearLayout> 
<LinearLayout 
    android:id="@+id/sample_content" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:visibility="gone" > 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:duplicateParentState="true" 
     android:orientation="horizontal" 
     android:visibility="visible" > 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1.0" 
      android:gravity="left" 
      android:text="Sample text 1" 
      android:textColor="@color/white" /> 
     <CheckBox 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="" /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:duplicateParentState="true" 
     android:orientation="horizontal" 
     android:visibility="visible" > 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1.0" 
      android:gravity="left" 
      android:text="Sample text 2" 
      android:textColor="@color/white" /> 
     <CheckBox 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="" /> 
    </LinearLayout> 
</LinearLayout> 

Программным:

mSampleTitle = (LinearLayout) mView.findViewById(R.id.sample_title); 
mSampleTitle.setOnClickListener(this); 
mSampleContent = (LinearLayout) mView.findViewById(R.id.sample_content); 

[...] 

public void onClick(View v) { 
    if (v == mSampleTitle) { 
     mSampleContent.setVisibility(mSampleContent.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE); 
    } 
} 

Он отлично работает, когда есть только один TextView, чтобы показать, но как только есть больше, только первый один становится видимым и все остальное просто пустое пространство ,

Спасибо

+0

все ваши TextViews объявлены как «fill_parent»? – dmon

+0

Я редактировал OP с полным XML. – shkschneider

+0

Похоже, я забыл «android: orientation =« vertical »' ... – shkschneider

ответ

0

Моя плохая, глупая ошибка.

Я забыл android:orientation="vertical". Код, изменяющий VISIBILITY, отлично работает.

<LinearLayout 
    android:id="@+id/sample_content" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:visibility="gone" > 

<LinearLayout 
    android:id="@+id/sample_content" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:visibility="gone" > 

я все еще нахожу странным тот факт, что они были так много пустого пространства ниже этой LinearLayout горизонтальной ...

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