ViewPager+ListView+grideView

2024-05-06 13:32

本文主要是介绍ViewPager+ListView+grideView,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

<span style="color: rgb(51, 51, 51); font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 26px; ">ViewPager+ListView+grideView,支持滑动,点击,数据都是真实的手机里面的数据,有需要的可以参考!</span>
还有里面的小点点 也会根据你滑动 而变化。
  public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//设置窗口无标题requestWindowFeature(Window.FEATURE_NO_TITLE);mInflater = getLayoutInflater();//初始化ListView和GridView的内容mainViewGroup = (ViewGroup) mInflater.inflate(R.layout.main, null);setContentView(mainViewGroup);mContext=this;initView();getdata();}protected void showToView() {// TODO Auto-generated method stubadapter=new ListViewAdapter(appInfos, mContext);gridViewAdapter=new GridViewAdapter(appInfos, mContext);mListView.setAdapter(adapter);mGridView.setAdapter(gridViewAdapter);mListView.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> parent, View view, int position,long id) {// TODO Auto-generated method stubAppInfo info=(AppInfo) parent.getItemAtPosition(position);if (null!=info) {Toast.makeText(mContext, info.getAppname(), 1000).show();}}});}private void initView() {// TODO Auto-generated method stubViewGroup viewLayoutListView = (ViewGroup) mInflater.inflate(R.layout.layout_listview, null);ViewGroup viewLayoutGridView = (ViewGroup) mInflater.inflate(R.layout.layout_gridview, null);mListView = (ListView) viewLayoutListView.findViewById(R.id.mylistview);mGridView = (GridView) viewLayoutGridView.findViewById(R.id.mygridview);//初始化ViewPager的内容mPageViews = new ArrayList<View>();//添加2个页面mPageViews.add(viewLayoutListView);mPageViews.add(viewLayoutGridView);//初始化底部的圆点视图mImageViews = new ImageView[mPageViews.size()];mViewPager = (ViewPager) mainViewGroup.findViewById(R.id.myviewpager);indicatorViewGroup = (ViewGroup) mainViewGroup.findViewById(R.id.mybottomviewgroup);for (int i = 0; i < mImageViews.length; i++) {mImageView = new ImageView(MainActivity.this);  mImageView.setLayoutParams(new LayoutParams(20,20));  mImageView.setPadding(20, 0, 20, 0);  if (i == 0) {mImageView.setBackgroundResource(R.drawable.page_indicator_focused);				} else {mImageView.setBackgroundResource(R.drawable.page_indicator);}mImageViews[i] = mImageView;//把指示作用的远点图片加入底部的视图中indicatorViewGroup.addView(mImageViews[i]);}mViewPager.setAdapter(new MyPagerAdapter());mViewPager.setOnPageChangeListener(new OnPageChangeListener() {public void onPageSelected(int arg0) {// TODO Auto-generated method stubfor (int i = 0; i < mImageViews.length; i++) {if(i == arg0) {mImageViews[i].setBackgroundResource(R.drawable.page_indicator_focused);} else {mImageViews[i].setBackgroundResource(R.drawable.page_indicator);}}}public void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}public void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub}});}private void getdata() {// TODO Auto-generated method stubappInfos=new ArrayList<AppInfo>();provider=new AppInfoProvider(mContext);startThread();}private void startThread() {// TODO Auto-generated method stubnew Thread() {public void run() {appInfos = provider.getAllApps();// 所有的程序Message msg = handler.obtainMessage(1000);handler.sendMessage(msg);}}.start();}


最后 附上下载链接:http://download.csdn.net/detail/u010126392/7506707



这篇关于ViewPager+ListView+grideView的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/964484

相关文章

ViewPager+fragment实现切换页面(一)

如今的很多应用中都是下面有一排按钮,点击可以切换页面,滑动也可以切换页面。下面就来简单的实现这个功能。 思路 首先肯定是会用到viewpager这个控件,为了能够向下兼容,最好用v4包下的viewpager,Activity要继承FragmentActivity 其次用一个集合来存储所有的fragment页面在设置viewpager的适配器时,把存储fragment页面的list集合传入ada

安卓中的fragment与viewPager的使用问题的解决

最近使用viewPager,结合fragment使用,发现fragment的周期将不符合他的原有的周期流程,多个fragment将会产生错位问题。       通过研究相关代码,发现fragment的切换实际调用的函数为setUserVisibleHint,通过在其中重写方法,将会达到fragment正确切换的效果。       public void setUserVisible

listview与复选框的合并使用

在使用listview的过程中,我们常常需要使用复选框,实现一些批处理功能。这时候我们需使用自定义的adapter,实现相关复选框的事件响应。      首先在adapter定义一个哈希表,用于存放复选框的选中情况:      如private static HashMap<String,Boolean> isSelected,private static HashMap<Inter

简单的android Listview使用例子

为了熟悉Listview的使用,做了一个小例子联系一下, 主要步骤: 1. 在MainActivity中,创建一个adapter对象(可以是android自带的ArrayAdapter,也可以是自定义的如SongAdapter) 2. 如果自定义,就要创建ListView的子项,如song_listview_item.xml 3. 创建ListView对象,并用setAdapter方法把a

兔子--计算listview的高度,解决listview与scrollview控件冲突

/** * 计算ListView的高度 * * @param listView */ public void setListViewHeightBasedOnChildren(ListView listView) { // 获取ListView对应的Adapter OrderGoodsAdapter listAdapter = (OrderGoodsAdapter) listView.getAda

Flutter-listview的item左右滑动,删除item

import 'package:flutter/material.dart';//列表左右滑动删除void main() =>runApp(MaterialApp(home: HomePage(),));class HomePage extends StatelessWidget {final List<String> items = List.generate(20, (index) =>

自定义布局实现listview上拉加载下拉刷新

listview布局有时加载数据偏多,需要上拉加载第二页等更多数据,下拉刷新数据等功能,也有开源的框架XRefreshView ,可以参考http://www.w2bc.com/Article/44291,当初开发项目时,便于自己控制,就自定义布局实现这功能。 1、自定义布局用来管理三个子控件:下拉头,包含内容的自定义listview,上拉头(代码有详细介绍) public class Pul

NM_LISTVIEW结构

NM_LISTVIEW结构.该结构用于存储列表视图的通知消息的有关信息,大部分列表视图的通知消息都会附带指向该结构的指针.NM_LISTVIEW的定义为  typedef   struct   tagNM_LISTVIEW   {    NMHDR   hdr;   //标准的NMHDR结构  int   iItem;   //表项的索引,若为-1则无效

【ListView】有关填充bug

假设要实现如下效果 ListView里若使用RelativeLayot则会出现错误 得不到垂直线的填充 线性布局的高度设置为match_parent会使高度为0,必须给它一个固定值,比如20dp ListView建议使用LinearLayout在最外层,而最外层的宽高无论如何设置都无法确定的,建议第二层也使用linearLayout来布局 【实现

ListView数据只有显示不全bug

Android编程中,ScrollView嵌套ListView时,会无法正确的计算ListView的大小。解决的办法有如下两种: 解决方案1: 直接把包含ListView控件的ScrollView控件从布局文件中去除,留下ListView控件,这是最简单快捷的解决办法,如果一定要在ScrollView中包含ListView,则参考解决方案2: