Android 4.0: проблемы с использованием вкладок + ListView + сведения

У меня есть простое приложение (вкладки с содержимым фрагмента), полученное путем расширения этого примера: http://developer.android.com/resources/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabs.html.

На одной из этих вкладок должен быть ListView, и после нажатия элемента детали должны отображаться на другом экране, если экран маленький, или на том же экране, если он большой (или в ландшафтном режиме).

Я попытался интегрировать этот пример здесь: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/FragmentLayout.html, но это действие, а не фрагмент, поэтому я не могу использовать:

setContentView(R.layout.fragment_list_layout);

ЛЭ подробнее:

У меня есть FragmentActivity с TabHost, содержимое которого является фрагментами. Один из этих фрагментов должен быть ListFragment, который может отображать детали на том же экране, что и список, например этот пример из FragmentLayout.java:

введите здесь описание изображения

Я хочу использовать эту функцию, используя рекомендуемые методы (фрагменты как содержимое вкладки). Это возможно?

Если нет, я попытался и сумел запустить другую FragmentActivity, когда выбрана определенная вкладка. Цель состоит в том, чтобы использовать этот FragmentActivity в качестве контейнера для моего макета (ListView + фрагмент), как в примере FragmentLayout, за исключением того, что я не могу добавить к нему ранее созданное меню вкладок. Как заставить это работать тогда?

В настоящее время:

введите здесь описание изображения

После выбора «случайной вкладки»:

введите здесь описание изображения

Мой последний желаемый вид (отделите FragmentActivity с исходным tabHost):

введите здесь описание изображения


person Buffalo    schedule 18.06.2012    source источник


Ответы (1)


Я решил проблему, имея два контейнера внутри моего tabContent, один для фрагмента ListView и один для фрагмента сведений. Вот мой макет сейчас:

<HorizontalScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true"
    android:scrollbars="vertical" >

    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" />
</HorizontalScrollView>

<FrameLayout
    android:id="@android:id/tabcontent"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_weight="0" />

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:baselineAligned="false"
    android:fadingEdge="none" >

    <FrameLayout
        android:id="@+android:id/realtabcontent"
        android:layout_width="0px"
        android:layout_height="fill_parent"
        android:layout_weight="1" />

    <FrameLayout
        android:id="@+android:id/details_container"
        android:layout_width="0px"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:visibility="gone" />
</LinearLayout>

После этого с вкладками можно нормально обращаться.

person Buffalo    schedule 17.08.2012