【问题标题】:How to use a different layout in each ActionBar tab (Android)如何在每个 ActionBar 选项卡中使用不同的布局 (Android)
【发布时间】:2013-04-04 19:14:45
【问题描述】:

我有一个使用 Android ActionBar 并具有三个选项卡的应用程序。我正在使用片段容器来切换不同的 ListFragments,但对于其中一个选项卡,我还想要布局底部的按钮和几个 TextView,它们包含列表中数据的摘要。我已在应用程序的其他地方将其作为 FragmentActivity 和 ListFragment 实现。

我想知道是否有任何方法可以为一个选项卡定义布局?

谢谢

【问题讨论】:

    标签: java android tabs android-fragments android-actionbar


    【解决方案1】:

    复制你正在膨胀 ListFragment 的布局 xml,然后将额外的视图放在列表元素旁边。您可以在 FragmentActivity 中使用 onTabSelected(Tab tab, FragmentTransaction ft) 来跟踪是否选择了您的特殊情况选项卡,然后将包内的标志推送到实例化您的片段类的内容,然后指示它需要在 onCreateView() 中扩展不同的布局。

    假设你可能有这个布局:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <ListView
            android:id="@+id/@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </ListView>
    </LinearLayout>
    

    在此处的 ListView 下方添加 TextViews 或 Button 是可行的(在这个确切的示例中,它们会被推离屏幕底部)。根据您如何执行包含 ListView 的布局,您可以在列表滚动时将新项目持久保存在屏幕底部(RelativeLayout 包含所有内容,一个线性布局包含文本/按钮,以及 android:layout_above="@+id/idOfThatLinearLayout" 添加为列表视图)。或者,您也可以 do something similar to this 使用 addFooterView() 来让这些新项目真正滚动 with 列表,就好像它们是底部的最后一个项目一样。

    【讨论】:

    • 嗨,我不确定我明白你的意思。目前我有一个片段容器,里面装满了 ListFragment,它使用一个简单的光标适配器,每行都有自己的布局。
    • ListFragment 的类应该以“onCreateView(...)”之类的行开头,并且在该方法的开头应该调用 ListFragment 的布局充气器。这就是我上面所说的。
    猜你喜欢
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 2014-01-05
    • 1970-01-01
    相关资源
    最近更新 更多