Fragment的2中载入方式!

Posted 麦哈顿博士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fragment的2中载入方式!相关的知识,希望对你有一定的参考价值。

1、静态有动态

代码如下:

public class MainActivity extends AppCompatActivity {
    private ContentFragment cf;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        setFragment();

    }
    //动态载入
    public void setFragment(){
        FragmentManager fm = getFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        cf =  new ContentFragment();
        ft.replace(R.id.fragment_content,cf);
        ft.commit();
    }
}

静态载入fragment布局
title_layout.xml

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

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="40dp"
            android:text="@string/title"/>

</LinearLayout>

动态载入的布局:
context_layout.xml

<?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">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="40dp"
        android:text="@string/context"/>
</LinearLayout>

activity_main.xml布局

<?xml version="1.0" encoding="utf-8"?>
<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.lesson.hs.fragmentExp.MainActivity">
    <!-- 自己定义的fragment-->
    <fragment
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/fragment_title"
        android:name="com.lesson.hs.fragmentExp.TitleFragment"
        />
    <!-- 动态载入的fragment容器-->
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/fragment_title"
        android:id="@+id/fragment_content"
        />
</RelativeLayout>

动态载入的fragment类:

public class ContentFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.context_layout,container,false);
        return view;
    }
}

静态载入的fragment类:

public class TitleFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.title_layout,container,false);
        return view;
    }
}

 

以上是关于Fragment的2中载入方式!的主要内容,如果未能解决你的问题,请参考以下文章

如何将列表视图中的数据从一个片段发送到另一个片段

Listview 项目未在 Fragment Android 中显示

fragment第二次载入就报错

在 Android 中的两个 Fragment 之间传递数据都有哪些不同的方式? [复制]

以编程方式替换片段

从片段中的相机拍照