在日常的Android开发过程中,我们往往要根据实际需求去对仅有的资源进行分配,而屏幕资源是一切资源分配的根本,如果页面没有划分好,那资源就没法快速利用,也就没起到系统应有的价值。所以我们在进行页面划分的时候就要求将可用资源发挥到极致才行,在Android中一屏就是一个Activity,我们要设计的对象也就是Activity,以往我们可能将所有的功能啊,控件啊,都直接添加到Activity中,这样不仅页面不灵活,而且代码也会很长很容余,对开发,对用户都很不友好,但是Google给出了很好的解决方案,Fragment,Fragment是什么呢?做过Web应用的人应该对Div应该很熟悉,Fragment就像DIV一样,但是更强大,他的生命周期也可以进行控制,而且你可以动态的对Fragment进行添加,删除和修改。
具体使用步骤如下:
1,在Activity中的XMl中添加相应的Fragment布局方式。
2,在Activity中动态的添加Fragment对象。
具体代码如下.
package com.easy.aaa;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
public class FragActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_frag);
if (savedInstanceState == null) {
this.getSupportFragmentManager().beginTransaction().add(R.id.frag_list, new FragementList()).commit();
this.getSupportFragmentManager().beginTransaction().add(R.id.frag_detail, new FragementList()).commit();
}
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/main_contion"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/frag_list"
android:name="com.easy.aaa.FragementList"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="2" >
</FrameLayout>
<FrameLayout
android:id="@+id/frag_detail"
android:name="com.easy.aaa.FragementDetails"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" >
</FrameLayout>
</LinearLayout>
package com.easy.aaa;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragementList extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.aa, container, false);
}
}
<?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"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</LinearLayout>
package com.easy.aaa;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragementDetails extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.bb, container, false);
}
}
<?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"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>