Вкладки Android: содержимое второй вкладки скрывается под содержимым первой вкладки - PullRequest
0 голосов
/ 15 ноября 2011

Я пытаюсь создать приложение, которое имеет действие с двумя вкладками, где на вкладке 1 есть изображение и текст поверх него, а на вкладке 2 есть две кнопки, на которые могут нажимать пользователи (что должно привести к дальнейшим действиям)

По какой-то причине мне не удалось отобразить кнопки на вкладке 2;все, что я вижу, это та же картинка из tab1.При ближайшем рассмотрении я заметил, что кнопки скрыты под картинкой из tab1.Что я делаю неправильно?Как сделать так, чтобы эта картинка исчезла и не отображалась на tab2?

Вот мой код:

IndexActivity

public class IndexActivity extends TabActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    TabHost.TabSpec spec = getTabHost().newTabSpec("tab1");
    spec.setContent(R.id.tab1content);
    spec.setIndicator("tab1");
    getTabHost().addTab(spec);

    spec = getTabHost().newTabSpec("tab2");
    spec.setContent(R.id.tab2content);
    spec.setIndicator("tab2");
    getTabHost().addTab(spec);

    getTabHost().setCurrentTab(0);    

    }
}

Мой файл main.xml выглядит следующим образомэто:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout 
       android:orientation="vertical"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:padding="5dp">
           <TabWidget android:id="@android:id/tabs"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
                />
           <FrameLayout android:id="@android:id/tabcontent"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent">       
                <include layout="@layout/tab1"/>
                <include layout="@layout/tab2"/>            
           </FrameLayout>           
 </LinearLayout>

tab1.xml выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent">
       <ImageView android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:scaleType="center"
                  android:src="@drawable/pic"/>
       <ScrollView android:id="@+id/scrolltab1"
                   android:layout_width="fill_parent"
                   android:layout_height="fill_parent">
       <TextView  android:id="@+id/tab1content"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
                  android:background="#65000000"
                  android:text="@string/text"
          android:textColor="#ffffffff"
          android:textSize="20sp"
              android:padding="15dp"  
        />
       </ScrollView>      
</merge>

tab2 выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tab2content"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="vertical">

    <Button
        android:id="@+id/button2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1.10"
        android:text="Button" />

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1.10"
        android:text="Button" />

</LinearLayout>

Пожалуйста, помогите!Должно быть, я что-то упустил, но не могу понять, что: (

Ответы [ 3 ]

0 голосов
/ 15 ноября 2011

Глядя на ваш код и ваш XML, я думаю, что проблема заключается в tab1.xml со следующей строкой:

<TextView  android:id="@+id/tab1content"...

Попробуйте расположить макет вокруг ImageView и ScrollView.И переместите android:id="@+id/tab1content" на макет.Как то так:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent">
   <LinearLayout android:id="@+id/tab1content"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent">

       <ImageView android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:scaleType="center"
              android:src="@drawable/pic"/>
       <ScrollView android:id="@+id/scrolltab1"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent">
       <TextView android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:background="#65000000"
          android:text="@string/text"
          android:textColor="#ffffffff"
          android:textSize="20sp"
          android:padding="15dp" />
       </ScrollView>

   </LinearLayout>
</merge>
0 голосов
/ 15 ноября 2011

Удалите следующие две строки из FrameLayout в вашем main.xml и посмотрите, что произойдет.

<include layout="@layout/tab1"/>
<include layout="@layout/tab2"/>            
0 голосов
/ 15 ноября 2011

Я полагаю, вы посмотрите на это ....

Ваш пример на самом деле справедливо представляет этот пример .... Учебник по Android Tabhost

Надеюсь, вы уже видели это .... Это был тот, который я использовал, когда разработал свой первый виджет для вкладок Android ...

PS: Взгляните на этот пример часть 2 из вышеперечисленного ... продолжение каждого и всего, что вам нужно знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...