Как мы можем сделать макет Tab автоматически скрытым?

1

обычно мы можем скрыть отдельные вкладки во время выполнения. но мне нужно сделать скрытый макет всей таблицы. когда я нажимаю экран, как только он появляется, и в другое время он исчезнет. Это возможно. Я видел это в приложении для камеры Motorola Droid X. пожалуйста помогите. заранее спасибо

Теги:

2 ответа

1

вы можете использовать setVisibility(8); :)

вы помещаете Id в свой linearLayout и управляете им в коде с помощью:

LinearLayout l=(LynearLayout) findViewById(R.id.myId);
l.setOnClickListener(this);

public void OnClick(View v){
    myTab.setVisibility(View.GONE);
}
  • 4
    Не кодируйте магические значения наподобие 8 . Используйте соответствующие константы, такие как View.GONE .
  • 0
    Я пробовал приведенный выше код, но это не работает.
0

В этом примере используется TabActivity. Главное - сделать его невидимым TabWidget.

public class MainActivity extends TabActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Resources resources = getResources();
        TabHost host = getTabHost();
        TabHost.TabSpec spec;
        spec = host.newTabSpec("one")
            .setIndicator(getText(R.string.oneTabIndicator),
                    resources.getDrawable(R.drawable.ic_tab_one))
            .setContent(new Intent().setClass(this, OneActivity.class));
        host.addTab(spec);
        OneActivity child = (OneActivity)getLocalActivityManager().getActivity("one");
        child.registerParentActivity(this);
            // and so on for other tabs
    }

    public void toggleTabs() {
        TabWidget tab = getTabHost().getTabWidget();
        int visibility = View.GONE;
        if (tab.getVisibility() == View.GONE) {
            visibility = View.VISIBLE;
        }
        tab.setVisibility(visibility);
    }

}

А также...

public class OneActivity extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        // ...
        Button button = (Button)findViewById(R.id.toggleButton);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                doToggle();
            }
        });
    }

    private void doToggle() {
        ((MainActivity)myParentActivity).toggleTabs();
    }

    public void registerParentActivity(Activity parent) {
        myParentActivity = parent;
    }
}

Вам просто нужно решить, какой механизм вы хотите использовать для вызова своей версии toggleTabs().

  • 0
    @balban shah Ты уже пробовал это?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню