В андроид, как я могу поместить вкладки в представление, содержащее изображение сверху? - PullRequest
1 голос
/ 17 июня 2011

Я создаю приложение для Android и пытаюсь добавить три вкладки под рисунком и текстом.

 ______________________________
 |  _____________             |
 |  |           |   text      |
 |  | picture   |   text      |
 |  |           |   text      |
 |  —————————————             |
 |  _______ ________ _______  |
 |  | tab | |  tab | | tab |  |
 |  ————————————————————————  |
 |  |                      |  |
 |  |                      |  |
 |  |       content        |  |
 |  |        here          |  |
 |  |                      |  |
 |  |                      |  |
 |                            |
 ——————————————————————————————

Я не знаю точно, как этого добиться.Любые идеи очень приветствуются.Спасибо.

Ответы [ 2 ]

1 голос
/ 17 июня 2011
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">
  <LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <ImageView 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:src="image_source/>
    <LinearLayout
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
      <TextView
        android:id="@android:id/text1"
        android:text="some text"
        android:layout_width="wrap_content"
      android:layout_height="wrap_content" />
      <TextView
        android:id="@android:id/text2"
        android:text="some text"
        android:layout_width="wrap_content"
      android:layout_height="wrap_content" />
      <TextView
        android:id="@android:id/text3"
        android:text="some text"
        android:layout_width="wrap_content"
      android:layout_height="wrap_content" />
    </LinearLayout>
  </LinearLayout>
  <TabHost
    android:id="@+id/my_tab_viewer"
    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"
            android:padding="5dp" />
    </LinearLayout>
  </TabHost>
</LinearLayout>

Это даст вам базовую структуру, а затем добавьте вкладки в свою деятельность:

TabHost tabHost = (TabHost) findViewById(R.id.my_tab_viewer);
TabHost.TabSpec spec = tabHost.newTabSpec("artists").setIndicator("Artists",
                  res.getDrawable(R.drawable.ic_tab_artists))
              .setContent(intent);
tabHost.addTab(spec);

Пример исходного кода Java взят из http://developer.android.com/resources/tutorials/views/hello-tabwidget.html

Возможно, вам потребуетсянастроить layout_width, layout_height для каждого компонента в XML, я не тестировал этот макет.

0 голосов
/ 17 июня 2011

Похоже на Android TabHost - это то, что вы ищете, в стандартном подклассе Activity (Android TabActivity, вероятно, слишком негибкая для предлагаемого макета).

TabHost - это виджет, который предоставляет панель вкладок с FrameLayout для отображения содержимого каждой вкладки.Вы можете поместить его под рисунком / текстом в макете, используя RelativeLayout (предпочтительно) или LinearLayout.

...