Android - 如何根据设备使用Fragment作为Dialog或Activity

时间:2015-12-14 12:28:52

标签: android android-fragments dialog

我对Android编程非常陌生,而且我想要完成我的UI开发。 这个问题的图片只是解释了我的问题: Dialog fragment embedding depends on device

我想创建一个带有Layout的可重用UI组件(可能是LinearLayout或Relative Layout)。根据屏幕大小(平板电脑与手机),我想在对话框或单独的活动中打开UI组件。

你们有人可以给我一个如何实现这个目标的建议吗?

2 个答案:

答案 0 :(得分:2)

在您要使用片段类型的活动中:

FragmentManager fm = getSupportFragmentManager();
//fragment class name : DFragment
DFragment dFragment = new DFragment();
            // Show DialogFragment
            dFragment.show(fm, "Dialog Fragment");

现在创建一个类DFragment并输入:

public class DFragment extends DialogFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.dialogfragment, container,
            false);
    getDialog().setTitle("DialogFragment Tutorial");        
    // Do something else
    return rootView;
}
}

<强> dialogfragment.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:padding="10dp"
    android:text="@string/welcome" />
</RelativeLayout>

希望它有所帮助!!

答案 1 :(得分:0)

如果您使用的是Android工作室,则可以创建一个新的master/detail活动,以了解他们如何解决这个问题。

您可以做的是创建一个包含2个配置的布局,一个用于手机,另一个用于平板电脑(例如,添加宽度属性)。在平板电脑布局中,您可以将FrameLayout添加到要托管片段的位置。

在活动的onCreate()中,您可以检查FrameLayout是否退出。如果它确实将变量设置为true fragmentView = true并检查您在何处创建片段或启动活动。