您的位置:首页 > 移动开发 > Android开发

初学Android Fragment

2015-08-04 15:58 603 查看
其实昨天就学了一些,开始根本不知道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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android Fragment