您的位置:首页 > 其它

ActionBar +Tab+ViewPager +Fragment 支持侧滑动完成办税工具的页面展示

2013-11-09 20:26 423 查看
1:fragment_zhqrl.xml(征期日历)

<?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:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="征期日历"/>
</LinearLayout>


2:fragment_bshdzh.xml(办税地址)

<?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:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="办税地址"/>

</LinearLayout>


3:ZhqrlFragment.java

public class ZhqrlFragment extends Fragment{
private View view = null;
@Override
public View onCreateView(LayoutInflater arg0, ViewGroup arg1, Bundle arg2) {
view = arg0.inflate(R.layout.fragment_zhqrl, arg1, false);
Log.i("ZhqrlFragment","*************");
return view;
}
}


4:BshdzhFragment.java

public class BshdzhFragment extends Fragment{
private View view = null;

@Override
public View onCreateView(LayoutInflater arg0, ViewGroup arg1, Bundle arg2) {
view = arg0.inflate(R.layout.fragment_bshdzh, arg1, false);
Log.i("BshdzhFragment", "**********");
return view;
}
}


5:BshToolsViewPagerAdapter.java(ViewPager的适配器)

public class BshToolsViewPagerAdapter extends FragmentPagerAdapter{
private Context mContext=null;

private BshdzhFragment bshdzhFragment = new BshdzhFragment();
private ZhqrlFragment zhqrlFragment = new ZhqrlFragment();

private static final int TAB_INDEX_COUNT = 2;

private static final int TAB_INDEX_ONE = 0;
private static final int TAB_INDEX_TWO = 1;

public BshToolsViewPagerAdapter(FragmentManager fm, Context context) {
super(fm);
this.mContext = context;
}

@Override
public Fragment getItem(int arg0) {
switch (arg0) {
case TAB_INDEX_ONE:
return bshdzhFragment;
case TAB_INDEX_TWO:
return zhqrlFragment;
}
throw new IllegalStateException("No fragment at position " + arg0);
}

@Override
public int getCount() {
return TAB_INDEX_COUNT;
}

@Override
public CharSequence getPageTitle(int position) {
String tabLabel = null;
switch (position) {
case TAB_INDEX_ONE:
tabLabel = this.mContext.getString(R.string.tab_1);
break;
case TAB_INDEX_TWO:
tabLabel = this.mContext.getString(R.string.tab_2);
break;
}
return tabLabel;
}
}


6:activity_bsh_tools.xml

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".BshToolsActivity" >

<android.support.v4.view.ViewPager
android:id="@+id/pagerBshTools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>

</RelativeLayout>


7:BshToolsActivity.java

public class BshToolsActivity extends FragmentActivity  implements ActionBar.TabListener {
private ViewPager mViewPager = null;
private BshToolsViewPagerAdapter mViewPagerAdapter = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bsh_tools);

setUpActionBar();
setUpViewPager();
setUpTabs();
}

//启用ActionBar
private void setUpActionBar() {
final ActionBar actionBar = getActionBar();
//设置ActionBar背景
//Drawable draw=this.getResources().getDrawable(R.drawable.ic_action_bar_bg);
//actionBar.setBackgroundDrawable(draw);
//启用ActionBar Tab
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//启用ActionBar的Home按键
actionBar.setDisplayHomeAsUpEnabled(true);
}

//设置ViewPager
private void setUpViewPager(){
mViewPagerAdapter = new BshToolsViewPagerAdapter(getSupportFragmentManager(),this);
mViewPager = (ViewPager)findViewById(R.id.pagerBshTools);
mViewPager.setAdapter(mViewPagerAdapter);
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
final ActionBar actionBar = getActionBar();
actionBar.setSelectedNavigationItem(position);
}

@Override
public void onPageScrollStateChanged(int state) {
switch(state) {
case ViewPager.SCROLL_STATE_IDLE:          //0空闲
break;
case ViewPager.SCROLL_STATE_DRAGGING:  //1在滑行中
break;
case ViewPager.SCROLL_STATE_SETTLING:  //2目标加载完
break;
default:
break;
}
}
});
}

//设置Tab标签内容
private void setUpTabs(){
final ActionBar actionBar = getActionBar();
for (int i = 0; i < mViewPagerAdapter.getCount(); ++i) {
actionBar.addTab(actionBar.newTab()
.setText(mViewPagerAdapter.getPageTitle(i))
.setTabListener(this));
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.bsh_tools, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case android.R.id.home:
this.finish();
overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
return true;
default:
return super.onOptionsItemSelected(item);
}
}

@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
mViewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
}


8:运行效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐