需要基本设计

时间:2012-08-15 08:18:15

标签: android android-fragments android-activity android-tabs

我的目标是Android 2.1上的应用程序。我有一个包含三个部分的布局。标题,主体和页脚。页脚在整个应用程序生命周期中保持不变。页脚有四个选项供用户选择(如四个选项卡)。当用户选择页脚中的每个选项时,内容必须在主体中更改。当用户与主体中的UI交互时,需要仅改变主体的内容(如替换活动的活动)。并且页脚中的用户选择必须保持突出显示,直到用户在页脚中选择另一个选项。我需要在同一选项卡中启动活动,但选项卡位于下方。很多人都建议使用activitygroup但是因为它被弃用了我该怎么做呢?如果有人需要更清楚地了解我准备提供的问题

3 个答案:

答案 0 :(得分:1)

如果您需要2.1及更高版本等较低版本的支持,我可以提出自己的方式。我总是对托盘使用单独的XML布局(例如,在您的情况下为页脚)( res / layout / tray.xml ):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainMenu"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:background="#EEEEEE"
    android:gravity="bottom|fill_horizontal"
    android:orientation="horizontal"
    android:padding="5dp" >

    <ImageView
        android:id="@+id/addBtn"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/add" android:layout_weight="0.2"/>

    <ImageView
        android:id="@+id/catalogBtn"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/catalog" android:layout_weight="0.2"/>

    <ImageView
        android:id="@+id/searchBtn"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/search" android:layout_weight="0.2"/>

    <ImageView
        android:id="@+id/settingsBtn"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/settings" android:layout_weight="0.2"/>

    <ImageView
        android:id="@+id/infoBtn"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/info" android:layout_weight="0.2"/>

</LinearLayout>

并将其包含在我需要的每个活动中:

<include layout="@layout/tray" android:id="@+id/tray" />

之后我可以在java代码中通过ID隐藏/显示托盘中的一些按钮,或者用其他颜色选择其中一些...

答案 1 :(得分:0)

要在所有活动中显示页脚菜单,您可以创建自定义布局 - 页脚的布局 - 并将其包含在每个活动中,或者更具体地说,将其包含在{{1的每个活动的布局中}}

此外,您的所有活动都应该有一个父活动,让它为<include />,您可以在其中为页脚菜单提供适当的操作。

然后,您只需要继承BaseActivity并将页脚菜单布局包含到当前布局中,以便为您想要的任何活动提供菜单。

答案 2 :(得分:0)

另一种可能的方法是使用fragments而不是每个内容页面的完整活动。碎片很像活动,除了它们需要嵌入到要显示的活动中,它们让您可以自由地更改活动的一个部分的内容(即,将一个碎片交换为另一个碎片),这意味着您可以使活动的另一部分保持不变 - 例如用于在这些片段之间切换的选项卡。一个很好的奖励是在另一个活动中重复使用该内容页面非常容易,如果您选择创建一个平板电脑友好版本,您可以轻松地构成现有片段的更复杂视图。

ViewPager与某种类型的页面指示符结合使用,例如the tab indicator here,您可以拥有一个活动的片段,并可以轻松地在它们之间切换。

由于您的目标是2.1,因此您需要使用android support library来支持片段。