ViewPager添加圆点,循环翻页。fragment的使用
来源:互联网 发布:java 培训班 编辑:程序博客网 时间:2024/05/18 03:54
ViewPager添加圆点,循环翻页,添加标题
对比昨天,与昨天的类似,
public class MainActivity extends Activity { private ViewPager viewpager; private List<View> views; private LayoutInflater mInflater; private LinearLayout mLinearLayout; private List<ImageView> mPoint; private PagerTabStrip mPagerTab; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewpager = (ViewPager) findViewById(R.id.viewpager); mLinearLayout= (LinearLayout) findViewById(R.id.linearlayout_image); mPagerTab = (PagerTabStrip) findViewById(R.id.pager_tab); mPagerTab.setBackgroundColor(Color.GRAY); mPagerTab.setTabIndicatorColor(Color.RED); mPagerTab.setTextColor(Color.BLUE); mPagerTab.setDrawFullUnderline(true); views = new ArrayList<>(); mInflater = getLayoutInflater(); View view1 = mInflater.inflate(R.layout.viewpager_one, null); View view2 = mInflater.inflate(R.layout.viewpager_two, null); View view3 = mInflater.inflate(R.layout.viewpager_three, null); View view4 = mInflater.inflate(R.layout.viewpager_one, null); views.add(view1); views.add(view2); views.add(view3); views.add(view4); mPoint=new ArrayList<>(); for (int i = 0;i<4;i++){ ImageView iv1 = new ImageView(this); iv1.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); iv1.setImageResource(R.mipmap.eii); iv1.setPadding(20,20,20,20); mPoint.add(iv1); mLinearLayout.addView(iv1); } mPoint.get(0).setImageResource(R.mipmap.eia); ViewPagerAdapter myPager=new ViewPagerAdapter(views); viewpager.setAdapter(myPager); viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (ImageView iv : mPoint) { iv.setImageResource(R.mipmap.eii); } mPoint.get(position % views.size()).setImageResource(R.mipmap.eia); } @Override public void onPageScrollStateChanged(int state) { } }); viewpager.setCurrentItem(Integer.MAX_VALUE/2-Integer.MAX_VALUE/2%views.size()); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
添加标题时需要复写一个方法getPageTitle
public class ViewPagerAdapter extends PagerAdapter { private List<View> views; private String[] titles = {"标题1","标题2","标题3","标题4"}; @Override public CharSequence getPageTitle(int position) { return titles[position%titles.length]; } public ViewPagerAdapter(List<View> views){ this.views = views; } @Override public int getCount() { // TODO Auto-generated method stub return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0==arg1; } @Override public void destroyItem(ViewGroup container, int position, Object object) {// super.destroyItem(container, position, object);// container.removeView(views.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { // TODO Auto-generated method stub View view = views.get(position%views.size()); if (view.getParent()!=null){ container.removeView(view); } container.addView(view); if(position==2){ Button btn = (Button) view.findViewById(R.id.pager_button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(v.getContext(), "点击了按钮", Toast.LENGTH_LONG).show(); } }); } return view; //views.get(position%views.size()); }}
三页的布局文件没有在此给出
<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" tools:context="com.example.myviewpager.MainActivity" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.PagerTabStrip android:id="@+id/pager_tab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom"> </android.support.v4.view.PagerTabStrip> </android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/linearlayout_image" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center_horizontal" android:layout_margin="40dp"> </LinearLayout></RelativeLayout>
Fragment的使用
实现将第三个碎片的输入文本显示在第二个碎片上,Activity必须继承FragmentActivity。另外注意支持包的导入,使用support v4包
public class MainActivity extends FragmentActivity implements View.OnClickListener{ private FrameLayout mFrameLayout; private Button mButton1; private Button mButton2; private Button mButton3; private MyFirstFragment myFirstFragment; private MySecondFragment mySecondFragment; private MyThirdFragment myThirdFragment; private FragmentManager mFragmentmanager; private FragmentTransaction transaction; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mFrameLayout = (FrameLayout) findViewById(R.id.framelayout); mButton1 = (Button) findViewById(R.id.button1); mButton2 = (Button) findViewById(R.id.button2); mButton3 = (Button) findViewById(R.id.button3); mButton1.setOnClickListener(this); mButton2.setOnClickListener(this); mButton3.setOnClickListener(this); mFragmentmanager = getSupportFragmentManager(); myFirstFragment = new MyFirstFragment(); mySecondFragment = new MySecondFragment(); myThirdFragment = new MyThirdFragment(); transaction = mFragmentmanager.beginTransaction(); transaction.add(R.id.framelayout,myFirstFragment); transaction.add(R.id.framelayout,mySecondFragment); transaction.add(R.id.framelayout,myThirdFragment); transaction.hide(myFirstFragment); transaction.hide(mySecondFragment); transaction.commit(); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.button1: transaction = mFragmentmanager.beginTransaction(); transaction.hide(mySecondFragment); transaction.hide(myThirdFragment); transaction.show(myFirstFragment); transaction.commit(); break; case R.id.button2: transaction = mFragmentmanager.beginTransaction(); String text = myThirdFragment.getText(); mySecondFragment.setText(text); transaction.hide(myFirstFragment); transaction.hide(myThirdFragment); transaction.show(mySecondFragment); transaction.commit(); break; case R.id.button3: transaction = mFragmentmanager.beginTransaction(); transaction.hide(myFirstFragment); transaction.hide(mySecondFragment); transaction.show(myThirdFragment); transaction.commit(); break; default: break; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
public class MyFirstFragment extends Fragment { private Button mButtonTest; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_test,null); mButtonTest = (Button) view.findViewById(R.id.button); mButtonTest.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(getActivity(),"点击了按钮",Toast.LENGTH_SHORT).show(); } }); return view; }}
public class MySecondFragment extends Fragment { private Button mButtonTest; private TextView mTextView; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_sec,null); mTextView = (TextView) view.findViewById(R.id.textview); return view; } public void setText(String text){ mTextView.setText(text); }}
public class MyThirdFragment extends Fragment { private Button mButtonTest; private EditText mEditText; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_third,null); mEditText = (EditText) view.findViewById(R.id.edittext); return view; } public String getText(){ String s = null; if (mEditText!=null){ s=mEditText.getText().toString(); } return s; }}
三个fragment的布局文件没有给出
<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" tools:context=".MainActivity"> <FrameLayout android:id="@+id/framelayout" android:layout_width="match_parent" android:layout_height="match_parent"></FrameLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="碎片1"/> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="碎片2"/> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="碎片3"/> </LinearLayout></RelativeLayout>
0 0
- ViewPager添加圆点,循环翻页。fragment的使用
- ViewPager添加圆点indicator,及ViewPager的循环滚动、自动滚动
- Android基础:翻页控件Viewpager的使用方法,viewpager+fragment混合使用
- ViewPager添加圆点
- ViewPager+Fragment的使用
- ViewPager+Fragment的使用
- ViewPager+Fragment的使用
- Viewpager+Fragment去除页面切换时的滑动翻页效果
- 第三十一天 ViewPager(带小圆点的图片左右循环滑动)、Fragment
- ViewPager翻页,下标,循环播放
- 带指示器的ViewPager循环翻页的实现
- 在FragmentLayout里面添加翻页圆点
- ViewPager+Fragment实现Tabhost,动态添加删除Fragment,可供第三方使用的类库
- ViewPager和fragment的使用
- ViewPager+Fragment的结合使用
- 2、ViewPager+Fragment的使用
- ViewPager 和Fragment的使用
- ViewPager和Fragment的使用
- beanstalkd消息队列在生产环境的应用
- uvaoj 12003 - Array Transformer
- iOS开发-Day32 数据持久化
- 基于OpenWrt添加ubus支持
- boost property tree 解析Json ini
- ViewPager添加圆点,循环翻页。fragment的使用
- SSM框架—详细整合教程(Spring+SpringMVC+MyBatis)
- UI课程02 UILabel,UITextField,UIButton
- 一名编程员毕业一年工作两年的感悟
- Mac 解决Can't connect to MySQL server on '127.0.0.1' (61)
- 续文件操作
- c指针详解
- 字符串循环右移N位算法
- java多线程(二)