Как добавить элемент управления tabhost на каждую страницу нашего приложения для Android?

#android

#Android

Вопрос:

Я хочу отображать и обрабатывать события элемента управления tabhost на каждой странице приложения для Android, не создавая его снова и снова, как в asp.net у нас есть концепция masterpage, на которой мы можем разместить наши общие элементы управления, есть ли что-нибудь в Android, чтобы я мог разместить tabcontrol там.

Ответ №1:

Вы должны расширить свою активность с помощью TabActivity, а также использовать TabHost и TabSpec. Одним из примеров для xml является

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

  </TabHost>
  

Комментарии:

1. Я знаю, что мы можем расширить tabactivity, я создал tabhost, но я не хочу создавать tab снова и снова для каждой страницы, если я расширяю tabactivity на каждой странице моего приложения, это означает, что я создаю новый элемент управления tab для каждой страницы, но я хочу просто создать его один раз и использовать на каждой странице в качестве концепции главной страницы в asp.net

2. Ну, вам не нужно расширять tabactivity для каждого действия, скорее создайте одно действие, которое расширяется из TabActivity. Затем, когда вы используете TabHost, помните, что он сохраняет все вкладки. Затем есть TabSpec, который в основном позволяет вам устанавливать содержимое каждой вкладки. С помощью setIndicator() и setContent() задайте имена и содержимое каждой вкладки. После всего этого вы должны добавить эти tabSpec в TabHost.TabSpec firstTabSpec =TabHost.newTabSpec(«tabIndicator1»); firstTabSpec.setIndicator(«Первая вкладка»).setContent(новое намерение (это,FirstTab.class )); Как вы можете видеть, вы просто вызываете здесь другое действие

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

4. итак, вы хотите, чтобы и ваш первый экран вкладки, и страница входа находились на одной вкладке?

5. Я не пробовал этого, но думаю, это решит вашу проблему ericharlow.blogspot.com/2010/09 /…