在大屏幕上动态显示活动中的两个片段

时间:2014-07-04 08:42:15

标签: android android-layout android-activity android-fragments

我刚刚学习android,我有一个主要活动的应用程序在启动时使用片段管理器添加片段。然后,程序在两个片段之间切换以执行其功能,再次使用片段管理器来替换片段。

我希望这个应用程序在大屏幕上显示两个片段。我如何

A)检测到有大屏幕

B)如果是这种情况,主活动是否将两个片段加载到单个活动中?

每个片段都有布局,主要活动的布局只是一个空白的framelayout,在onCreate期间填充了一个片段。请记住:有两个片段和一个活动。活动使用片段管理器将片段加载到其容器中。

2 个答案:

答案 0 :(得分:4)

A)要检测大屏幕,您可以使用此代码

public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
        & Configuration.SCREENLAYOUT_SIZE_MASK)
        >= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
如果设备在大屏幕上运行,

将返回true。 另请检查this link

B)通过代码添加片段,可以在同一个活动上有两个片段。 在主布局中有2个布局,这两个布局将是两个片段的容器。如果屏幕尺寸适合您,则通过代码将片段添加到每个片段中。 使用此代码。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:orientation="vertical"
    android:layout_height="fill_parent">

<RelativeLayout
    android:id="@+id/FragmentContainer1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<RelativeLayout
    android:id="@+id/FragmentContainer2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

</LinearLayout>

然后添加片段。

fragmentTransaction.add(R.id.FragmentContainer1, fragment);
fragmentTransaction.add(R.id.FragmentContainer2, fragment);

检查this link以获得Lars Vogel的精彩教程。

答案 1 :(得分:0)

  

如何检测到有大屏幕?

解决方案 -

让应用程序检测是否有大屏幕。

  • 为不同的屏幕尺寸定义不同的布局文件。
  • 确保您的布局可以适当调整大小以适应屏幕
  • 根据屏幕配置提供适当的UI布局
  • 确保将正确的布局应用于正确的屏幕

阅读 - Multiple Screen SupportSupport Screen training docs

  

如何让主要活动将两个片段加载到单个活动中   如果是这样的话?

解决方案 -

enter image description here

您可以在单个活动中组合多个片段,以构建多窗格UI并在多个活动中重用片段。当您在不同的布局中定义片段容器时,这非常有用。您只需要替换任何布局中的任何其他片段。

当您导航到当前布局时,您拥有该容器的ID以将其替换为您想要的片段。

您还可以使用backStack方法返回popBackStack()中的上一个片段。为此,您需要使用addToBackStack()在堆栈中添加该片段,然后使用commit()进行反映。这与当前的电流相反。

说明

  • 让我们想要使用两个片段来处理风景和肖像 设备的模式。
  • 接下来根据片段数量,创建将扩展的类 Fragment类。 Fragment类有自己的回调 功能。您可以根据您的要求覆盖任何功能 要求。
  • 对应每个片段,您需要创建布局文件 在XML文件中。这些文件将具有已定义片段的布局。
  • 最后修改活动文件以定义替换的实际逻辑 根据您的要求制作片段。

在活动中创建两个片段的步骤 -

1 您将使用Eclipse IDE创建一个Android应用程序,并在MyFragments包下将其命名为com.example.myfragments,并显示空白的活动。

2 修改主要活动文件MainActivity.java,如下所示。在这里,我们将检查设备的方向,因此我们将在不同的片段之间切换。

3 在com.example.myfragments包下创建两个java文件PM_Fragment.java和LM_Fragement.java,以定义您的片段和相关方法。

4 创建布局文件res/layout/lm_fragment.xmlres/layout/pm_fragment.xml,并为这两个片段定义布局。

5 修改res/layout/activity_main.xml文件的详细内容以包含这两个片段。

6 res/values/strings.xml档案中定义所需的常量

7 运行应用程序以启动Android模拟器并验证应用程序中所做更改的结果。

阅读 - FragmentTransactionAndroid Fragments