下面我们做五个Fragment内容的呈现,如下:
先有一个BaseFragment抽象类,以被具体的子类继承和实现。
[java] view plaincopy在CODE上查看代码片派生到我的代码片
[java] view plaincopy在CODE上查看代码片派生到我的代码片
public abstract class BaseFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, null);
TextView textView = (TextView) view.findViewById(R.id.txt_content);
textView.setText(initContent());
return view;
}
public abstract String initContent();
}
(1)关注界面
[java] view plaincopy在CODE上查看代码片派生到我的代码片
public class AttentionFragment extends BaseFragment {
@Override
public String initContent() {
return "这是关注我界面";
}
}
(2)@界面
[java] view plaincopy在CODE上查看代码片派生到我的代码片
public class AtmeFragment extends BaseFragment {
@Override
public String initContent() {
return "这是@我界面";
}
}
(3)评论界面
[java] view plaincopy在CODE上查看代码片派生到我的代码片
public class CommentFragment extends BaseFragment {
@Override
public String initContent() {
return "这是评论我界面";
}
}
(4)我的界面
[java] view plaincopy在CODE上查看代码片派生到我的代码片
public class MyListFragment extends BaseFragment {
@Override
public String initContent() {
return "这是我的列表界面";
}
}
(5)全部界面
[java] view plaincopy在CODE上查看代码片派生到我的代码片
public class GlobalFragment extends BaseFragment {
@Override
public String initContent() {
return "这是全站界面";
}
}
7.我们还需要一个工厂模式,来实现根据下标的位置返回相应的Fragment。像这样
[java] view plaincopy在CODE上查看代码片派生到我的代码片
public class FragmentFactory {
public static Fragment getInstanceByIndex(int index) {
Fragment fragment = null;
switch (index) {
case 1:
fragment = new AttentionFragment();
break;
case 2:
fragment = new AtmeFragment();
break;
case 3:
fragment = new CommentFragment();
break;
case 4:
fragment = new MyListFragment();
break;
case 5:
fragment = new GlobalFragment();
break;
}
return fragment;
}
}
8.好了,万事具备只欠东风啦。请回到我们刚开始放出去那段代码,那你就已经完成它了。
9.哦,我们还是放上配置文件,贡大家参考。
[java] view plaincopy在CODE上查看代码片派生到我的代码片
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mydream.fragment"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher">
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>