初学Android Fragment

其实昨天就学了一些,开始根本不知道Fragment到底是个什么东东,反复看老师的视频。

个人理解,Fragment相当于Activity中的一个个模块。类似微信的界面,点击微信,展示微信的Fragment,点击通讯录,展示通讯录的Fragment。。。

下面是一个简单的例子:在主布局上,点击按钮,跳转到另个fragment。

 注:Fragment要引用v4.app.Fragment 

MainActivity:

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

        if(savedInstanceState == null){
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container,new PlaceholdeFragment())
                    .commit();
        }
    }
}

PlaceholdeFragment
public class PlaceholdeFragment extends Fragment {

    public PlaceholdeFragment(){

    }

    @Override
    public View onCreateView(LayoutInflater inflater,ViewGroup container,
                             Bundle saveInstanceState){
        View rootView  = inflater.inflate(R.layout.fragment_main,container,false);
        rootView.findViewById(R.id.btnShowAnotherFragment).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //呈现anotherFragment  首先获取FragmentManager,然后beginTransation开始进行变化,之后将一个新的fragment添加进来,最后提交。
                //为何使用replace而不使用add。replace:使用一个新的fragment替换当前,add为直接添加一个新的fragment。因为之前已经有了一个,所以用replace。
                getFragmentManager().beginTransaction().replace(R.id.container,new AnotherFragment()).commit();//传主布局的id,和新的fragment
            }
        });
        return rootView;
    }
}
主Fragment的布局:

<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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivityFragment">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="呈现另一个Fragement"
        android:id="@+id/btnShowAnotherFragment"
        android:layout_gravity="center_horizontal" />
</LinearLayout>


AnotherFragment:

public class AnotherFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater,ViewGroup container,
                             Bundle saveInstanceState){
        //初始化布局,需要解析的布局是:R.layout.fragment_another   主布局是:container
        View root  = inflater.inflate(R.layout.fragment_another,container,false);
        return root;
    }
}

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="this is another fragment"
        android:id="@+id/textView" />
</LinearLayout>






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值