【问题标题】:Android 4.0: trouble using Tabs + ListView + detailsAndroid 4.0:使用 Tabs + ListView + details 时遇到问题
【发布时间】:2012-06-18 10:26:53
【问题描述】:

我有一个通过扩展此示例获得的简单应用程序(带有片段内容的选项卡):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);

更多细节:

我有一个带有 TabHost 的 FragmentActivity,其内容是片段。其中一个 Fragment 必须是 ListFragment,它可以在与列表相同的屏幕上显示详细信息,例如来自 FragmentLayout.java 的示例:

我想使用推荐的做法(片段作为标签内容)来使用此功能。这可能吗?

如果没有,我已经尝试并设法在选择某个选项卡时启动另一个 FragmentActivity。目标是使用 FragmentActivity 作为我的布局(ListView + 片段)的容器,就像在 FragmentLayout 示例中一样,除了我似乎无法将之前创建的选项卡菜单添加到它。那么如何让它工作呢?

目前:

选择“随机标签”后:

我最后想要的外观(将 FragmentActivity 与原始 tabHost 分开):

【问题讨论】:

    标签: java android listview detailsview


    【解决方案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>
    

    在此之后可以正常处理选项卡。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-23
      • 1970-01-01
      相关资源
      最近更新 更多