您的位置:首页 > 移动开发 > Android开发

android主页框架FragmentTabHost+ViewPager,左右滑动

2017-08-10 14:43 302 查看
先看图






主要代码

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