头部滑动加Fragment滑动和集合的增删小demo
来源:互联网 发布:淘宝商城三只松鼠 编辑:程序博客网 时间:2024/06/02 14:43
***********本DEMO中有可滑动的头部关联着ViewPager和Fragment的滑动效果,还有集合的增加和删除**************
***************Fragment1和Fragment2中有内容,其他4个Fragment无内容,创建后关联布局即可*************
*********************************************Fragment1.class**********************************
import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;public class Fragment1 extends Fragment {private View view;private ListView listView;String [] s=new String []{"九三简介", "九三章程", "领导成员", "主席、副主席", "常务委员", "中央委员"};@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {view = inflater.inflate(R.layout.f1, container,false);return view;}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onActivityCreated(savedInstanceState);//发现控件listView = (ListView) view.findViewById(R.id.listView);//listView适配器listView.setAdapter(new BaseAdapter() {@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubTextView textView = new TextView(getActivity());textView.setText(s[position]);return textView;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn null;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn s.length;}});}}
import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.view.PagerAdapter;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ListAdapter;import android.widget.TextView;public class Fragment2 extends Fragment {private View view;private GridView gridView1;private GridView gridView2;ArrayList<String> list=new ArrayList<String>();ArrayList<String> lists=new ArrayList<String>();private BaseAdapter adpater;private BaseAdapter adpaters;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {view = inflater.inflate(R.layout.f2, container, false);return view;}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onActivityCreated(savedInstanceState);list.clear();list.add("历史回眸");list.add("社员风采");list.add("KING");list.add("GAOFEI");list.add("CF");lists.clear();lists.add("社会要闻");lists.add("本社介绍");lists.add("订阅");lists.add("自身建设");gridView1 = (GridView) view.findViewById(R.id.gridView1);gridView2 = (GridView) view.findViewById(R.id.gridView2);gridView1.setAdapter(adpaters=new BaseAdapter() {@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubTextView textView = new TextView(getActivity());textView.setText(lists.get(position));return textView;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn lists.size();}});gridView2.setAdapter(adpater=new BaseAdapter() {@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubTextView textView = new TextView(getActivity());//textView.setText(t2[position]);textView.setText(list.get(position));return textView;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic int getCount() {// TODO Auto-generated method stub//return t2.length;return list.size();}});gridView2.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stublists.add(list.get(arg2));list.remove(arg2);adpater.notifyDataSetChanged();adpaters.notifyDataSetChanged();}});}}
*******************************************************MainActivity.classs***************************************************
import android.os.Bundle;import android.app.Activity;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.Menu;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;public class MainActivity extends FragmentActivity {private MyViewPagerIndicator myViewPagerIndicator;//创建一个数组private String[] titles = { "社会要闻", "本社介绍", "订阅", "自身建设", "历史回眸", "社员风采" };//private String[] t = { "九三简介", "九三章程", "领导成员", "主席、副主席", "常务委员", "中央委员" };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//发现控件myViewPagerIndicator = (MyViewPagerIndicator) findViewById(R.id.myViewPagerIndicator);ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);myViewPagerIndicator.setViewPager(viewPager);myViewPagerIndicator.addTitles(titles); //ViewPager+Fragment适配器viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {@Overridepublic Fragment getItem(int arg0) {// TODO Auto-generated method stubFragment fragment=new Fragment();switch (arg0) {case 0:fragment=new Fragment0();break;case 1:fragment=new Fragment1();break;case 2:fragment=new Fragment2();break;case 3:fragment=new Fragment3();break;case 4:fragment=new Fragment4();break;case 5:fragment=new Fragment5();break;default:break;}return fragment;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn 6;}});}}
****************************************************************MyViewPagerIndicator.class********************************************
import java.util.ArrayList;import android.content.Context;import android.graphics.Color;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.util.AttributeSet;import android.view.View;import android.view.View.OnClickListener;import android.widget.HorizontalScrollView;import android.widget.LinearLayout;import android.widget.TextView;public class MyViewPagerIndicator extends HorizontalScrollView implementsOnClickListener {private LinearLayout linearLayout;private String[] titles;ArrayList<View> viewList = new ArrayList<View>();private ViewPager viewPager;public MyViewPagerIndicator(Context context, AttributeSet attrs,int defStyle) {super(context, attrs, defStyle);initView();}public MyViewPagerIndicator(Context context, AttributeSet attrs) {super(context, attrs);initView();}public MyViewPagerIndicator(Context context) {super(context);initView();}public void setViewPager(ViewPager viewPager) {this.viewPager = viewPager;viewPager.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int position) {setCurrentItem(position);}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageScrollStateChanged(int arg0) {}});}private void initView() {// 创建线性布局linearLayout = new LinearLayout(getContext());this.addView(linearLayout);}public void addTitles(String[] titles) {this.titles = titles;viewList.clear();//循环for (int i = 0; i < titles.length; i++) {View view = View.inflate(getContext(), R.layout.pager_item, null);TextView tv_titles = (TextView) view.findViewById(R.id.tv_tab);TextView tv_line = (TextView) view.findViewById(R.id.tv_line);viewList.add(view);tv_titles.setText(titles[i]);//判断if (i == 0) {tv_titles.setTextColor(Color.RED);tv_line.setVisibility(View.VISIBLE);} else {tv_titles.setTextColor(Color.BLACK);tv_line.setVisibility(View.GONE);}//设置数据view.setId(i);view.setOnClickListener(this);//创建paramsLinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);linearLayout.addView(view, params);}}@Overridepublic void onClick(View v) {setCurrentItem(v.getId());}//setCurrentItem方法private void setCurrentItem(int position) {this.setScrollBarStyle(HorizontalScrollView.GONE);int width = linearLayout.getChildAt(position).getWidth();this.scrollTo(width * position, 0);//循环for (int i = 0; i < titles.length; i++) {View view = viewList.get(i);TextView tv_titles = (TextView) view.findViewById(R.id.tv_tab);TextView tv_line = (TextView) view.findViewById(R.id.tv_line);//判断并设置相应的颜色if (position == i) {// 设置传递过来的viewpager的当前页viewPager.setCurrentItem(i);tv_titles.setTextColor(Color.RED);tv_line.setVisibility(View.VISIBLE);} else {tv_titles.setTextColor(Color.BLACK);tv_line.setVisibility(View.GONE);}}}}
*************************************main布局************************************
<LinearLayout 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:orientation="vertical" > <com.bwie.test.MyViewPagerIndicator android:id="@+id/myViewPagerIndicator" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v4.view.ViewPager></LinearLayout>
***************************f1布局****************************
<?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" > <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView></LinearLayout>
***************************f2布局***************************************
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:text="已订阅栏目" /> <GridView android:id="@+id/gridView1" android:layout_width="match_parent" android:layout_height="100dp" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginTop="26dp" android:numColumns="4" > </GridView> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/gridView1" android:layout_centerHorizontal="true" android:layout_marginTop="54dp" android:text="更多频道" /> <GridView android:id="@+id/gridView2" android:layout_width="match_parent" android:layout_height="100dp" android:layout_alignParentLeft="true" android:layout_below="@+id/textView2" android:numColumns="4" > </GridView></RelativeLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/tv_tab" android:layout_width="wrap_content" android:padding="10dp" android:layout_height="wrap_content" android:textSize="20sp" android:text="哈哈哈哈" /> <TextView android:id="@+id/tv_line" android:layout_width="match_parent" android:layout_height="10dp" android:background="#ff0000" /></LinearLayout>
**************************** OK ********************************
0 0
- 头部滑动加Fragment滑动和集合的增删小demo
- ViewPager+Fragment+TabLayout实现的头部滑动
- 头部为横向滑动,下面Fragment和ViewPager
- Fragment+ViewPager 左右滑动 Demo
- Fragment+viewpager切换滑动页面Demo
- Android的Viewpager视差滑动效果小demo
- 横向滑动ViewPager和Fragment
- fragment滑动
- Fragment滑动
- Android_滑动的时候头部变化效果
- Android 微博头条头部滑动的效果
- Android_滑动的时候头部变化效果
- Android的Fragment左右滑动
- Fragment做的导航滑动
- 关于fragment滑动的记录
- Android滑动头部控件
- Viewpagerindicator 头部带滑动
- 返回头部滑动动画
- tomcat的启动方法
- 2016.6.28笔记(3)-Struts2
- HDU-2601 Bone Collector(DP 01背包)
- Activity生命周期
- 【NOI2005】维护数列
- 头部滑动加Fragment滑动和集合的增删小demo
- C#实现上传图片
- java不定长参数方法
- JS原型理解
- java基础学习总结——super关键字
- nginx之rtmp-module模块编译
- SPP-Net 与 RCNN 网络的区别
- Python作图-精确率与召回率间关系
- uboot流程分析--修改android启动模式按键