android主页框架FragmentTabHost+ViewPager,左右滑动
2017-08-10 14:43
302 查看
先看图
主要代码
源码下载
http://download.csdn.net/download/qq_31939617/9927729
主要代码
package com.example; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTabHost; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.TabHost.OnTabChangeListener; import android.widget.TextView; import com.example.CartFragment; import com.example.CategoryFragment 4000 ; import com.example.HomeFragment; import com.example.HotFragment; import com.example.MineFragment; import com.example.R; public class MainActivity extends FragmentActivity { private static final String TAG = "MainActivity"; private FragmentTabHost tabHost; private String currentTabId; private LayoutInflater inflate; private int mImageViewArray[] = {R.drawable.selector_icon_home, R.drawable.selector_icon_hot, R.drawable.selector_icon_category, R.drawable.selector_icon_cart, R.drawable.selector_icon_mine}; private String mTextviewArray[] = {MyApplication.getContext().getResources().getString(R.string.home), MyApplication.getContext().getResources().getString(R.string.hot), MyApplication.getContext().getResources().getString(R.string.catagory), MyApplication.getContext().getResources().getString(R.string.cart), MyApplication.getContext().getResources().getString(R.string.mine), }; private int itemTextArry[] = {R.string.home, R.string.hot, R.string.catagory, R.string.cart, R.string.mine}; private HomeFragment mHomeFragment = new HomeFragment(); private HotFragment mHotFragment = new HotFragment(); private CategoryFragment mCategoryFragment = new CategoryFragment(); private CartFragment mCartFragment = new CartFragment(); private MineFragment mMineFragment = new MineFragment(); private View tab[] = new View[5]; // 定义数组来存放Fragment界面 private Class fragmentArray[] = {HomeFragment.class, HotFragment.class, CategoryFragment.class, CartFragment.class, MineFragment.class}; private Fragment fragmentPage[] = {mHomeFragment, mHotFragment, mCategoryFragment, mCartFragment, mMineFragment}; private ViewPager viewPager; private List<Fragment> fragmentList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initTabHost(); initViewPager(); } private void initTabHost() { fragmentList = new ArrayList<Fragment>(); tabHost = (FragmentTabHost) findViewById(android.R.id.tabhost); tabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent); // 实例化视图 inflate = LayoutInflater.from(this); int count = mTextviewArray.length; for (int i = 0; i < count; i++) { // 获取图片 tab[i] = getTabItemView(i); // 添加fragmentPage到List<Fragment>中 fragmentList.add(fragmentPage[i]); // 为每一个Tab按钮设置图标、文字和内容并添加进Tab选项卡中 tabHost.addTab( tabHost.newTabSpec(mTextviewArray[i]).setIndicator(tab[i]), fragmentArray[i], null); // 设置第一个按钮被选中 currentTabId = mTextviewArray[0]; // 设置去间隔线 tabHost.getTabWidget().setDividerDrawable(null); tabHost.setOnTabChangedListener(new OnTabChangeListener() { @Override public void onTabChanged(String tabId) { if (!currentTabId.equals(tabId)) { currentTabId = tabId; } viewPager.setCurrentItem(tabHost.getCurrentTab()); } }); } } private void initViewPager() { viewPager = (ViewPager) findViewById(R.id.itemViewPager); viewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int arg0) { tabHost.setCurrentTab(arg0); } }); viewPager.setAdapter(new FragmentViewPagerAdapter( getSupportFragmentManager(), fragmentList)); viewPager.setOffscreenPageLimit(3); } /** * 给Tab按钮设 a787 置图标和文字 */ private View getTabItemView(int index) { View view = inflate.inflate(R.layout.tab_item_view, null); ImageView imageView = (ImageView) view.findViewById(R.id.imageview); imageView.setImageResource(mImageViewArray[index]); TextView textView = (TextView) view.findViewById(R.id.textview); textView.setText(itemTextArry[index]); //选中设置 textView.setSelected(true); //不选中设置 textView.setSelected(false); return view; } }
源码下载
http://download.csdn.net/download/qq_31939617/9927729
相关文章推荐
- Android:详情界面左右滑动看更多,ViewPager动态添加Fragment,仿51job详情界面
- android ViewPager加Fragment实 4000 现导航加左右滑动(类似QQ、微信)
- android 学习之Fragment+ViewPager实现页面左右滑动标签页
- Android开发:ViewPager+Fragment满足内容区域左右滑动
- android app主题UI界面框架搭建 tablayout+Viewpager+fragment 导航栏滑动和点击切换界面
- Android 利用ViewPager实现底部圆点导航左右滑动效果以及Fragment页面切换
- Android之实现ViewPager+Fragment左右滑动
- android开发步步为营之71:CoordinatorLayout+AppBarLayout+RecyclerView+ViewPager打造可上下左右滑动的App主框架
- android开发步步为营之53:viewpager+fragment构造可左右滑动标签页效果
- Android使用ViewPager实现左右循环滑动及轮播效果
- Android 使用ViewPager真正实现左右无限滑动(附源码)
- Android开发之使用ViewPager实现图片左右滑动切换效果
- Android主页面 多层Fragment嵌套(Fragment+ViewPager)滑动
- Android ViewPager左右滑动月历
- Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题
- Android中Fragment点击切换与添加ViewPager滑动切换
- Android禁止ViewPager左右滑动
- Android使用TabLayou+fragment+viewpager实现滑动切换页面效果
- Android使用ViewPager实现左右循环滑动及轮播效果
- Android应用经典主界面框架之二:仿网易新闻客户端、CSDN 客户端 (Fragment ViewPager)