2013-04-18 3 views
4

Раньше у меня был простой макет main.xml, который отображал только 2 вида с помощью оболочки ViewFlipper. Он работал (до сих пор работает) большой, используя следующий код:Как правильно надуть макет с помощью вложенного ViewFlipper?

setContentView(R.layout.main); 
mTV1 = (TextView) findViewById(R.id.textview01); 
mTV2 = (TextView) findViewById(R.id.textview02); 
mViewFlipper = (ViewFlipper)findViewById(R.id.flipper01); 

теперь я хочу добавить 2 кнопки в верхней части первоначальных представлений, в моде, подобной this:

<LinearLayout 
android:id="@+id/linearLayout01" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<LinearLayout 
android:id="@+id/linearLayout02" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 
    <Button android:id="@+id/button01" android:layout_height="wrap_content" android:text="Button 1" android:layout_width="0dip" android:layout_weight="1"></Button> 
    <Button android:id="@+id/button02" android:layout_height="wrap_content" android:text="Button 2" android:layout_width="0dip" android:layout_weight="1"></Button> 
</LinearLayout> 

<RelativeLayout 
android:id="@+id/relativeLayout01" 
android:layout_width="fill_parent" 
android:layout_height="0dp" 
android:layout_weight="1"> 
    <ViewFlipper 
     android:id="@+id/flipper01" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     > 
    <TextView 
     android:id="@+id/textview01" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Text" 
     /> 
     <TextView 
     android:id="@+id/textview02" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Text2" 
     /> 

    </ViewFlipper> 
    </RelativeLayout> 
</LinearLayout> 

Моя проблема это я интуитивно модифицированный исходный код, вставив findViewById для составного макета:

setContentView(R.layout.main); 
mCompositeLayout = (LinearLayout) findViewById(R.id.linearLayout02); 
mTV1 = (TextView) findViewById(R.id.textview01); 
mTV2 = (TextView) findViewById(R.id.textview02); 
mViewFlipper = (ViewFlipper)findViewById(R.id.flipper01); 

Но он показывает точно так же, как и раньше! Как будто я никогда не добавлял дополнительные linearLayout02, содержащие кнопки.

Что мне не хватает? Что я делаю не так?

ответ

1

Попробуйте project-> clean (Если вы используете Eclipse) и убедитесь, что редактируете файл main.xml справа. Ваш код работает, не имеет значения CompositeLayout или ViewFlipper, нарисованы кнопки.

Если вы уверены, что ничего не пропало, а кнопки еще не нарисованы, попробуйте добавить android: layout_weight в новый LinearLayout (содержащий кнопки). (Для моего Galaxy Nexus все в порядке без веса, но проблема может возникнуть из-за фрагментации устройства Android)

+0

Спасибо. Я делал 'Project> Clean' бесчисленное количество раз, так что это не так. Но ... Я только что обнаружил, что я ошибочно использовал 'fill_parent' для кнопок вместо' wrap_content' в 'android: layout_height'. Так много часов потеряно из-за глупой опечатки ... – scatmoi

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