最近在做一些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>2、FindWorkFragment类的具体操作,里面说的很详细,我就不做解释了
<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用起来很方便,而且他的兼容性很好,希望新手们都能学习一下!!!