Android中activity加入多个Fragment显示

吴统威 on 编程语言 android | 2015-06-29 17:49:27.0

本教程使用Android Studio开发.以后Android的文章都是通过Android Studio来开发.

我们还是直入正题,有时候为了显示效果,我们需要在一个activity中显示多个布局效果,当然也通过单个xml进行布局,这里我们使用Fragment来处理.

1.首先,我们创建一个android项目,结构如下    
   1435571774669031916.jpg    

2.创建activity_main的布局,且编写MainActivity的代码

xml

<LinearLayout 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:orientation="vertical"
    tools:context=".MainActivity">

     <fragment

         android:id="@+id/home"
         android:layout_width="match_parent"
         android:layout_height="0dp" android:name="wutongwei.com.studyfragment.HomeFragment"
         android:layout_weight="1"
         tools:layout="@layout/activity_home" />

    <fragment
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:name="wutongwei.com.studyfragment.MessageFragment"
        android:layout_height="0dp" tools:layout="@layout/activity_message"
        android:id="@+id/message"></fragment>

</LinearLayout>

java

package wutongwei.com.studyfragment;

import android.support.v4.app.FragmentActivity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState, 0, 0);
        setContentView(R.layout.activity_main, 0, 0);

    }


}

3.创建HomeFragment布局文件和对应的Fragment代码

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" android:background="#ff6600">

    <TextView  android:text="HomeFragment" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>

java

package wutongwei.com.studyfragment;

import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;


public class HomeFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.activity_home,container,false, 0, 0);
    }


}

4.创建MessageFragment布局文件和对应的Fragment代码

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:text="MessageFragment"
        android:id="@+id/textView"
        android:layout_gravity="center_vertical"
        android:gravity="center"></TextView>
</LinearLayout>

java

package wutongwei.com.studyfragment;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * Created by Tonway on 15/6/29.
 */
public class MessageFragment extends Fragment{

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.activity_message,container,false, 0, 0);
    }
}

最后运行效果

1435572624402080049.jpg