Android “具有多个视图的片段”;屏幕“;

Android “具有多个视图的片段”;屏幕“;,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,我一直在寻找一种方法,将片段与它自己的“屏幕”结合使用 我的设想: 碎片活动->布局:带有这些选项卡的选项卡主机:主页|网络|提要 HomeFragment->layout:有两个按钮,我需要为这些按钮创建一个屏幕,但我不知道如何做,可能会隐藏正在显示的元素,并在“按钮屏幕”上只显示我需要的元素 NetworkFragment->布局:n个按钮和n个屏幕 FeedsFragment->布局:n个按钮和n个屏幕 选项卡主机工作正常,我可以在我的选项卡(片段)之间切换,但在片段屏幕上,我需要单击

我一直在寻找一种方法,将片段与它自己的“屏幕”结合使用

我的设想:

  • 碎片活动->布局:带有这些选项卡的选项卡主机:主页|网络|提要

  • HomeFragment->layout:有两个按钮,我需要为这些按钮创建一个屏幕,但我不知道如何做,可能会隐藏正在显示的元素,并在“按钮屏幕”上只显示我需要的元素

  • NetworkFragment->布局:n个按钮和n个屏幕

  • FeedsFragment->布局:n个按钮和n个屏幕
选项卡主机工作正常,我可以在我的选项卡(片段)之间切换,但在片段屏幕上,我需要单击该按钮并显示片段选项卡屏幕以外的其他屏幕。

您要使用的是一个。这将使您拥有一组视图。其部分文件内容如下:

子视图绘制在堆栈中,最新添加的子视图位于顶部

在Android框架中,这经常用于执行诸如显示空视图或列表视图之类的任务,如下面的代码片段。此代码段可以显示ListView或TextView

    <FrameLayout
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_weight="1" >
    <!-- Here is the list. Since we are using a ListActivity, we
         have to call it "@android:id/list" so ListActivity will
         find it -->
    <ListView android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:drawSelectorOnTop="false"/>

    <!-- Here is the view to show if the list is emtpy -->
    <TextView android:id="@android:id/empty"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="No items."/>

</FrameLayout>
如果您有多个视图(您称之为屏幕),只需在它们之间循环,并将不希望显示的视图设置为不可见,以便显示您确实希望显示的视图

请注意,如果您想变得更花哨,您可以对片段使用相同的技术。关于这一点,有一篇很好的Android培训文章叫做。它仍然使用FrameLayout,但它使用片段事务。但是,它在您的特定情况下可能不起作用,因为片段不能包含其他片段,并且您已经依赖TabHost中的多个片段,所以请从上面更简单的FrameLayout方法开始。

您想要使用的是。这将使您拥有一组视图。其部分文件内容如下:

子视图绘制在堆栈中,最新添加的子视图位于顶部

在Android框架中,这经常用于执行诸如显示空视图或列表视图之类的任务,如下面的代码片段。此代码段可以显示ListView或TextView

    <FrameLayout
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_weight="1" >
    <!-- Here is the list. Since we are using a ListActivity, we
         have to call it "@android:id/list" so ListActivity will
         find it -->
    <ListView android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:drawSelectorOnTop="false"/>

    <!-- Here is the view to show if the list is emtpy -->
    <TextView android:id="@android:id/empty"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="No items."/>

</FrameLayout>
如果您有多个视图(您称之为屏幕),只需在它们之间循环,并将不希望显示的视图设置为不可见,以便显示您确实希望显示的视图


请注意,如果您想变得更花哨,您可以对片段使用相同的技术。关于这一点,有一篇很好的Android培训文章叫做。它仍然使用FrameLayout,但它使用片段事务。但是,在您的特定情况下,它可能不起作用,因为片段不能包含其他片段,并且您已经依赖TabHost中的多个片段,因此请从上面更直接的FrameLayout方法开始。

您不清楚自己在问什么。当你说“显示其他屏幕”时,你是在要求一堆视图吗?是的@louielouie像一堆视图或java SwingIt的cardlayout不清楚你在要求什么。当你说“显示其他屏幕”时,你是在要求一堆视图吗?是的@louielouie像一堆视图或java Swing的cardlayout