Как реализовать ListView в TabView? - PullRequest
0 голосов
/ 13 июня 2011

У меня есть вопрос о реализации макета ListView в макете вкладок.

Когда мы реализуем это, у нас есть пользовательская строка заголовка, которая представляет собой макет вкладки, а внутри каждого макета вкладки - представление списка, если основное действие будет расширением ListView или оно должно бытьрасширение Tab View?Может ли это быть списком?

Причина в том, что я создал ListView, правильно работающий, и я хочу расширить его, используя список в качестве шаблона и добавляя вкладки (категории), которые переходят в болеетаких списков.Я сделал это, используя ListView, и, похоже, для добавления вкладок потребуется переписать весь код, расширив tabview.Есть ли способ использовать ListView при реализации моих вкладок?

Я заметил, что не существует учебника о том, как реализовать эти 2 вида / макета вместе, у кого-нибудь есть какие-либо ссылки и указания?

1 Ответ

3 голосов
/ 13 июня 2011

У меня есть пример этого в некотором коде, который я написал некоторое время назад.

Мне также был нужен список внутри вкладки.Таким образом, драйвер для этой вкладки имеет другие действия внутри нее.Вы добавляете TabSpec с намерением ListActivity к TabHost.

Это макет для вкладки:

<?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"
            android:padding="5dp" />
    </LinearLayout>
</TabHost>

Затем это макет для одного из представлений списка вtab:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ListView android:id="@+id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
    <TextView android:id="@+id/android:empty"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="@string/no_items"/>
</LinearLayout>

А это код самой вкладки:

открытый класс

MyTabActivity extends TabActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            setContentView(R.layout.my_tabs);
            Bundle bundle = getIntent().getExtras();

            TabHost tabHost = getTabHost();
            TabHost.TabSpec spec;
            Intent intent;

            intent = new Intent().setClass(this, MyListActivity.class);
            spec = tabHost  .newTabSpec("some_things")
                            .setIndicator("Some")
                            .setContent(intent);
            tabHost.addTab(spec);

            intent = new Intent().setClass(this, MyOtherActivity.class);
            spec = tabHost  .newTabSpec("top_things")
                            .setIndicator("Top")
                            .setContent(intent);
            tabHost.addTab(spec);


            tabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 35;
            tabHost.getTabWidget().getChildAt(1).getLayoutParams().height = 35;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...