2010-08-03 2 views
0

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

ответ

1

Возможно, вы также захотите использовать ViewFlipper, определенный в xml.

<ViewFlipper android:id="@+id/ScreenSwitch" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <element A> 
    <element B> 
    <element C> 
</ViewFlipper> 

Использования просто, просто найти объект ViewFlipper Повсеместно findViewById() и запрос изменяющийся:

viewFlipper.setDisplayedChild(idOfViewToSet); 

Именно тогда полностью зависит от вас, как вы строите «вкладку».

+0

+1 для ViewFlipper над TabHost. TabHost - это зло ИМХО. – Qberticus

+0

ViewFlipper работал фантастически, спасибо, что ознакомил меня с этим. :) – Chiggins

+0

Добро пожаловать. Я действительно использую ViewFlipper в своем проекте, даже с MapView. Но для этого, конечно, нужны некоторые собственные решения, я создал что-то вроде View Managers, поэтому они заботятся обо всем, а не о действиях :) – LordTwaroog

0

Для создания представления, что вы, вероятно, хотите что-то вроде этого:

import android.view.View; 
import android.widget.TabHost; 

public class MyViewController implements TabHost.TabContentFactory 
{ 
    private View myRootView; 

    @Override 
    public View createTabContent(String tag) 
    { 
     if (myRootView == null) 
     { 
      // TODO: Create your view here by... 
      //  1) Constructing it yourself 
      //  2) Inflating a layout.xml with LayoutInflater (better) 
      myRootView = new View(context); 
     } 
     return myRootView; 
    } 
} 

Что касается изменения вкладок программно, это так же просто, как вызов setCurrentTab() вашего объекта TabHost.

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