Android ViewPager+Fragment实现首页滑动翻页
16lz
2021-01-23
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!-- ViewPager组件 --> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- PagerTabStrip是标签页的切换效果 --> <android.support.v4.view.PagerTabStrip android:id="@+id/pagertab" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </android.support.v4.view.ViewPager></RelativeLayout>
MainActivity.java
import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.PagerTabStrip;import android.support.v4.view.ViewPager;import java.util.ArrayList;public class MainActivity extends ActionBarActivity { private ViewPager m_vp; private PagerTabStrip pagerTabStrip; private FragmentTab mfragmenttab; private ArrayList<Fragment> fragmentList; private ArrayList<String> titleList = new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); m_vp = (ViewPager) findViewById(R.id.viewpager); pagerTabStrip = (PagerTabStrip) findViewById(R.id.pagertab); pagerTabStrip.setTabIndicatorColor(getResources().getColor(android.R.color.holo_green_dark)); pagerTabStrip.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark)); fragmentList = new ArrayList<Fragment>(); for (int i = 0; i <= 3; i++) { mfragmenttab = new FragmentTab(); fragmentList.add(mfragmenttab); titleList.add("" + i); } m_vp.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager())); } public class MyViewPagerAdapter extends FragmentPagerAdapter { public MyViewPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int arg0) { return fragmentList.get(arg0); } @Override public int getCount() { return fragmentList.size(); } @Override public CharSequence getPageTitle(int position) { return titleList.get(position); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
FragmentTab.java
/** * Created by YaphetZhao on 2015/9/14. */import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class FragmentTab extends Fragment { private View mMainView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //动态加载布局文件 LayoutInflater inflater = getActivity().getLayoutInflater(); mMainView = inflater.inflate(R.layout.fragmenttab, (ViewGroup) getActivity().findViewById(R.id.viewpager), false); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup viewGroup = (ViewGroup) mMainView.getParent(); return mMainView; } @Override public void onDestroy() { super.onDestroy(); } @Override public void onPause() { super.onPause(); } @Override public void onResume() { super.onResume(); } @Override public void onStart() { super.onStart(); } @Override public void onStop() { super.onStop(); }}
fragment_tab.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"></LinearLayout>
更多相关文章
- 使用Android自带Gallery组件实现CoverFlow
- Android Studio UI布局
- 关于Android 相对布局中的属性 的介绍和运用
- android之布局xml各种控件属性详解
- 为Android写的WebService调用组件
- android xml布局中TextView文字居中方法
- android UI组件
- 为Android封装的HTTP请求组件
- android 动态布局setLayoutParams方法设置