首页 > 代码库 > Fragment的简单使用(切换界面)-FenGKun
Fragment的简单使用(切换界面)-FenGKun
最近在做一些Android的简单布局应用,以下就是我这次做的效果,自我感觉挺漂亮就拿出来给大家分享一下
首先,要定义四个FindWorkFragment,FindTalentsFragment,FindSchoolFragment,FindStudentFragment类
注意,继承的是 Fragment类(android.support.v4.app.Fragment)
由于我就做了第一个类的具体功能,所以也就拿FindWorkFragment类在展示吧
1、FindWorkFragment布局
<?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" android:background="#31C4F7"> <!-- 上间隙 --> <View android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="10"/> <!-- 标题 --> <TextView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="30" android:text="找工作" android:textColor="#fff" android:textSize="40sp" android:gravity="center"/> <!-- 间隙 --> <View android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="15"/> <!-- 姓名 --> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="15" android:orientation="horizontal" > <!-- 名称 --> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="50" android:text="姓名:" android:textColor="#fff" android:textSize="20sp" android:gravity="right|center_vertical"/> <!-- 间隙 --> <View android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2"/> <!-- 输入框 --> <EditText android:id="@+id/etName" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="100" android:hint="请输入姓名" android:background="#fff" android:gravity="left|center_vertical" android:paddingLeft="10dp" android:textSize="23sp"/> <!-- 间隙 --> <View android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="11"/> </LinearLayout> <!-- 间隙 --> <View android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="20"/> <!-- 手机号 --> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="15" android:orientation="horizontal" > <!-- 名称 --> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="50" android:text="手机号:" android:textColor="#fff" android:textSize="20sp" android:gravity="right|center_vertical"/> <!-- 间隙 --> <View android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2"/> <!-- 输入框 --> <EditText android:id="@+id/etPhone" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="100" android:hint="请输入手机号" android:background="#fff" android:gravity="left|center_vertical" android:paddingLeft="10dp" android:textSize="23sp"/> <!-- 间隙 --> <View android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="11"/> </LinearLayout> <!-- 间隙 --> <View android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="20"/> <!-- 选择工种 --> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="15" android:orientation="horizontal" > <!-- 名称 --> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="50" android:text="选择工种:" android:textColor="#fff" android:textSize="20sp" android:gravity="right|center_vertical"/> <!-- 间隙 --> <View android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2"/> <!-- 选择工种 --> <Spinner android:id="@+id/spType" android:layout_width="0dp" android:layout_weight="102" android:layout_height="match_parent" android:paddingLeft="10dp" android:textSize="23sp" android:prompt="@string/select"> </Spinner> <!-- 间隙 --> <View android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="10"/> </LinearLayout> <!-- 间隙 --> <View android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="20"/> <!-- 发布 --> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="15" android:orientation="horizontal"> <!-- 间隙 --> <View android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"/> <!-- 发布 --> <Button android:id="@+id/btnCommit" android:layout_width="0dp" android:layout_weight="4" android:layout_height="match_parent" android:text="发布" android:textColor="#fff" android:textSize="20sp" android:background="#E4BA3F"/> <!-- 间隙 --> <View android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"/> <!-- 重置 --> <Button android:id="@+id/btnReset" android:layout_width="0dp" android:layout_weight="4" android:layout_height="match_parent" android:text="重置" android:textColor="#fff" android:textSize="20sp" android:background="#E4BA3F"/> <!-- 间隙 --> <View android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"/> </LinearLayout> <!-- 底间隙 --> <View android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="20"/> </LinearLayout>
<pre name="code" class="java">package com.example.recruitget; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import android.widget.Toast; /** * 找工作 * @author FenGKun * */ public class FindWorkFragment extends Fragment { /** 找工作 */ private View m_vFindWorkFragment; /** 姓名 */ private EditText m_etName; /** 电话 */ private EditText m_etPhone; /** 发布 */ private Button m_btnCommit; /** 重置 */ private Button m_btnReset; /** 下拉列表 */ private Spinner m_spType; private ArrayAdapter<String> adapter; /** 选项 */ private String[] types = new String[] {"医 生","工 人","教 师","销 售","服 务"}; public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { m_vFindWorkFragment = inflater.inflate(R.layout.find_work, container,false); // 初始化变量 initUi(); return m_vFindWorkFragment; } /** * 初始化变量 */ private void initUi() { // 姓名 m_etName = (EditText) m_vFindWorkFragment.findViewById(R.id.etName); // 电话 m_etPhone = (EditText) m_vFindWorkFragment.findViewById(R.id.etPhone); // 发布 m_btnCommit = (Button) m_vFindWorkFragment.findViewById(R.id.btnCommit); m_btnCommit.setOnClickListener(commit); // 重置 m_btnReset = (Button) m_vFindWorkFragment.findViewById(R.id.btnReset); m_btnReset.setOnClickListener(reset); // 下拉列表 m_spType = (Spinner) m_vFindWorkFragment.findViewById(R.id.spType); // 定义适配器 adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, types); //设置下拉列表的风格 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //将adapter 添加到spinner中 m_spType.setAdapter(adapter); //添加事件Spinner事件监听 m_spType.setOnItemSelectedListener( new itemSelectedListener()); m_spType.setVisibility(View.VISIBLE); m_spType.setSelection(0, true); } /** * spinner监听类 */ private class itemSelectedListener implements OnItemSelectedListener{ @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { } @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub } } /** * 发布事件 */ private View.OnClickListener commit = new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(getActivity(), "发布成功!请静静等待...", Toast.LENGTH_SHORT).show(); } }; /** * 重置事件 */ private View.OnClickListener reset = new View.OnClickListener() { @Override public void onClick(View v) { m_etName.setText(""); m_etPhone.setText(""); m_spType.setSelection(0, true); } }; }
3、最后就是主页操作了,首先是MainActivity布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" android:background="#fff"> <!-- 中间内容 --> <fragment android:id="@+id/fragmentPager" android:name="com.example.recruitget.FindWorkFragment" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="677" /> <!-- 底部导航栏 --> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="73" android:orientation="horizontal" > <!-- 找工作 --> <TextView android:id="@+id/tvWork" android:layout_width="0dp" android:layout_weight="50" android:layout_height="match_parent" android:text="找工作" android:gravity="center" android:textColor="#000" android:background="#E4BA3F"/> <!-- 分割线 --> <View android:layout_width="0dp" android:layout_weight="0.5" android:layout_height="match_parent" android:background="#cccccc"/> <!-- 招人才 --> <TextView android:id="@+id/tvTalents" android:layout_width="0dp" android:layout_weight="50" android:layout_height="match_parent" android:text="招人才" android:textColor="#E4BA3F" android:gravity="center"/> <!-- 分割线 --> <View android:layout_width="0dp" android:layout_weight="0.5" android:layout_height="match_parent" android:background="#ccc"/> <!-- 找学校 --> <TextView android:id="@+id/tvSchool" android:layout_width="0dp" android:layout_weight="50" android:layout_height="match_parent" android:text="找学校" android:gravity="center" android:textColor="#E4BA3F"/> <!-- 分割线 --> <View android:layout_width="0dp" android:layout_weight="0.5" android:layout_height="match_parent" android:background="#ccc"/> <!-- 招学生 --> <TextView android:id="@+id/tvStudent" android:layout_width="0dp" android:layout_weight="50" android:layout_height="match_parent" android:text="招学生" android:gravity="center" android:textColor="#E4BA3F"/> </LinearLayout> </LinearLayout>
4、MainActivity类继承FragmentActivity,具体操作如下
package com.example.recruitget; import android.R.color; import android.os.Bundle; import android.app.Activity; import android.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.Menu; import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; /** * 功能首页 * @author FenGKun * */ public class MainActivity extends FragmentActivity { /** 找工作 */ private TextView tv_findWork; /** 招人才 */ private TextView tv_findTalents; /** 找学校 */ private TextView tv_findSchool; /** 招学生 */ private TextView tv_findStudent; /** 具体内容 */ private android.support.v4.app.Fragment contentFragment; /** 管理fragment */ private FragmentManager fragmentManager; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化数据 initUi(); } /** * 初始化变量 */ private void initUi() { // 找工作 tv_findWork = (TextView) findViewById(R.id.tvWork); tv_findWork.setOnClickListener(itemClick); // 招人才 tv_findTalents = (TextView) findViewById(R.id.tvTalents); tv_findTalents.setOnClickListener(itemClick); // 找学校 tv_findSchool = (TextView) findViewById(R.id.tvSchool); tv_findSchool.setOnClickListener(itemClick); // 招学生 tv_findStudent = (TextView) findViewById(R.id.tvStudent); tv_findStudent.setOnClickListener(itemClick); // fragment管理者 fragmentManager = getSupportFragmentManager(); } /** * 点击选项 */ private View.OnClickListener itemClick = new View.OnClickListener() { @Override public void onClick(View v) { tv_findWork.setBackgroundColor(0xffffffff); tv_findWork.setTextColor(0XFFE4BA3F); tv_findTalents.setBackgroundColor(0Xffffffff); tv_findTalents.setTextColor(0XFFE4BA3F); tv_findSchool.setBackgroundColor(0xffffffff); tv_findSchool.setTextColor(0XFFE4BA3F); tv_findStudent.setBackgroundColor(0xffffffff); tv_findStudent.setTextColor(0XFFE4BA3F); TextView textview = (TextView) v; textview.setBackgroundColor(0XFFE4BA3F); textview.setTextColor(0xff000000); // 开启一个Fragment事务 FragmentTransaction transaction = fragmentManager.beginTransaction(); switch (v.getId()) { // 找工作 case R.id.tvWork: contentFragment = new FindWorkFragment(); transaction.replace(R.id.fragmentPager, contentFragment); break; // 招人才 case R.id.tvTalents: contentFragment = new FindTalentsFragment(); transaction.replace(R.id.fragmentPager, contentFragment); break; // 找学校 case R.id.tvSchool: contentFragment = new FindSchoolFragment(); transaction.replace(R.id.fragmentPager, contentFragment); break; // 招学生 case R.id.tvStudent: contentFragment = new FindStudentFragment(); transaction.replace(R.id.fragmentPager, contentFragment); break; default: break; } transaction.commit(); } }; }
其实,Fragment用起来很方便,而且他的兼容性很好,希望新手们都能学习一下!!!
Fragment的简单使用(切换界面)-FenGKun
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。