当前位置: 首页 > news >正文

国际传媒网站设计如何做自己的小说网站

国际传媒网站设计,如何做自己的小说网站,招聘网站页面,外国做足球数据网站Android scrollView和viewpager嵌套 指示器吸顶 根据viewpager每Android scrollView和viewpager嵌套 指示器吸顶 根据viewpager每个页面的内容适配高度这几天 朋友问我了个问题 有个特别的需求 页面如下就是当viewpager里面的当前页面内容足够多的时候 要去能滑上去 并且指示…Android scrollView和viewpager嵌套 指示器吸顶 根据viewpager每Android scrollView和viewpager嵌套 指示器吸顶 根据viewpager每个页面的内容适配高度这几天 朋友问我了个问题  有个特别的需求  页面如下就是当viewpager里面的当前页面内容足够多的时候  要去能滑上去 并且指示器吸顶  但是当内容不多的时候  能滑到哪就停在哪  当时第一反应是用coordinatelayout  结果不行 内容少的时候  也直接滑到顶部了activity的xml文件后来就直接用scrollView包裹来实现了 自定义scrollView实现滚动监听 用来实现指示器吸顶效果public classMyScrollview extendsScrollView {privateScrollViewListener scrollViewListener null;publicMyScrollview(Context context) {super(context);}publicMyScrollview(Context context,AttributeSet attrs) {super(context,attrs);}publicMyScrollview(Context context,AttributeSet attrs, intdefStyleAttr) {super(context,attrs,defStyleAttr);}public voidsetScrollViewListener(ScrollViewListener scrollViewListener) {this.scrollViewListener scrollViewListener;}Overrideprotected voidonScrollChanged(intl, intt, intoldl, intoldt) {super.onScrollChanged(l,t,oldl,oldt);if(scrollViewListener! null) {scrollViewListener.onScrollChanged(this,l,t,oldl,oldt);}}public interfaceScrollViewListener {voidonScrollChanged(MyScrollview scrollView, intl, intt, intoldl, intoldt);}}在activity里面设置监听scroll.setScrollViewListener(newMyScrollview.ScrollViewListener() {Overridepublic voidonScrollChanged(MyScrollview scrollView, intl, intt, intoldl, intoldt) {if(t iv.getHeight() mTabLayout.getParent() layout) {layout.removeView(mTabLayout);rl_layout.addView(mTabLayout);} else if(t iv.getHeight() mTabLayout.getParent() rl_layout) {rl_layout.removeView(mTabLayout);layout.addView(mTabLayout);}}});然后就是实现viewpager的每个页面的内容高度适配了  从写viewpagerpublic classCustomViewPager extendsViewPager {private intcurrent;private intheight 0;/*** 保存position与对于的View*/privateHashMap mChildrenViews newLinkedHashMap();private booleanscrollble true;publicCustomViewPager(Context context) {super(context);}publicCustomViewPager(Context context,AttributeSet attrs) {super(context,attrs);}Overrideprotected voidonMeasure(intwidthMeasureSpec, intheightMeasureSpec) {if(mChildrenViews.size() current) {View child mChildrenViews.get(current);if(child ! null) {child.measure(widthMeasureSpec,MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED));height child.getMeasuredHeight();}}heightMeasureSpec MeasureSpec.makeMeasureSpec(height,MeasureSpec.EXACTLY);super.onMeasure(widthMeasureSpec,heightMeasureSpec);}public voidresetHeight(intcurrent) {this.current current;if(mChildrenViews.size() current) {LinearLayout.LayoutParams layoutParams (LinearLayout.LayoutParams) getLayoutParams();if(layoutParams null) {layoutParams newLinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,height);} else{layoutParams.height height;}setLayoutParams(layoutParams);}}/*** 保存position与对于的View*/public voidsetObjectForPosition(View view, intposition) {mChildrenViews.put(position,view);}Overridepublic booleanonTouchEvent(MotionEvent ev) {if(!scrollble) {return true;}return super.onTouchEvent(ev);}public booleanisScrollble() {returnscrollble;}public voidsetScrollble(booleanscrollble) {this.scrollble scrollble;}}用法是在每个fragment 的onCreatView里面添加一行代码就行然后在viewpager所在的activity里面设置监听  就可以了mViewPager.setOnPageChangeListener(newViewPager.OnPageChangeListener() {Overridepublic voidonPageScrolled(intposition, floatpositionOffset, intpositionOffsetPixels) {}Overridepublic voidonPageSelected(intposition) {mViewPager.resetHeight(position);}Overridepublic voidonPageScrollStateChanged(intstate) {}});下面是整个activity的代码packagecom.example.wenlaisu.myapplication;importandroid.os.Bundle;importandroid.support.design.widget.TabLayout;importandroid.support.v4.app.Fragment;importandroid.support.v4.view.ViewPager;importandroid.support.v7.app.AppCompatActivity;importandroid.widget.ImageView;importandroid.widget.LinearLayout;importandroid.widget.RelativeLayout;importjava.util.ArrayList;importjava.util.List;/*** Created by wenlaisu on 2018/4/12.*/public classViewPagerSample extendsAppCompatActivity {CustomViewPager mViewPager;List mFragments;String[] mTitles newString[]{主页,微博,相册};privateTabLayout mTabLayout;privateMyScrollview scroll;privateLinearLayout layout;privateRelativeLayout rl_layout;privateImageView iv;Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_third);// 第一步初始化ViewPager和TabLayoutmViewPager (CustomViewPager) findViewById(R.id.viewpager);mTabLayout (TabLayout) findViewById(R.id.tabs);layout (LinearLayout) findViewById(R.id.layout);rl_layout (RelativeLayout) findViewById(R.id.rl_layout);scroll (MyScrollview) findViewById(R.id.scroll);iv (ImageView) findViewById(R.id.iv);setupViewPager();}private voidsetupViewPager() {mFragments newArrayList();ListFragment listFragment newListFragment(mViewPager,0);ListFragment2 listFragment2 newListFragment2(mViewPager,1);ListFragment3 listFragment3 newListFragment3(mViewPager,2);mFragments.add(listFragment);mFragments.add(listFragment2);mFragments.add(listFragment3);// 第二步为ViewPager设置适配器BaseFragmentAdapter adapter newBaseFragmentAdapter(getSupportFragmentManager(),mFragments,mTitles);mViewPager.setAdapter(adapter);// 第三步将ViewPager与TableLayout 绑定在一起mTabLayout.setupWithViewPager(mViewPager);mViewPager.setOnPageChangeListener(newViewPager.OnPageChangeListener() {Overridepublic voidonPageScrolled(intposition, floatpositionOffset, intpositionOffsetPixels) {}Overridepublic voidonPageSelected(intposition) {mViewPager.resetHeight(position);}Overridepublic voidonPageScrollStateChanged(intstate) {}});scroll.setScrollViewListener(newMyScrollview.ScrollViewListener() {Overridepublic voidonScrollChanged(MyScrollview scrollView, intl, intt, intoldl, intoldt) {if(t iv.getHeight() mTabLayout.getParent() layout) {layout.removeView(mTabLayout);rl_layout.addView(mTabLayout);} else if(t iv.getHeight() mTabLayout.getParent() rl_layout) {rl_layout.removeView(mTabLayout);layout.addView(mTabLayout);}}});}}就可以了demo的github地址Android scrollView和viewpager嵌套 指示器吸顶 根据viewpager每相关教程
http://www.sadfv.cn/news/59081/

相关文章:

  • 印刷网站建设 优帮云让百度收录自己的网站
  • 高端网站建设与发展做淘宝这样的网站需要什么
  • 单页网站程序黑龙江网站建设开发
  • 做网站公司高端php官网网站建设
  • 企业建站系统官网郑州视频网站建设
  • 果洛州wap网站建设公司网站改版怎么弄
  • 滕州手机网站建设案例产品展示网站源码php
  • 做膜结构那个网站好注册页面
  • 网站相互推广怎么做0735郴州新网招聘
  • 广西住房城乡建设厅官方网站广州什么地方好玩
  • 网站开发用技术如何给英文网站做外链
  • 网站索引量wordpress自定义分类链接
  • 怎么创立网站旅游网站首页模板下载
  • 上海建设网站制古典风格网站模板
  • 备案网站大全动易网站地图
  • 有没有做旅游攻略的网站自己做网站语言包怎么做
  • 百度统计会对原网站产生影响吗地方网站全网营销
  • 接单做公司网站站群站长之家网站建设制作
  • 如何更快的让百度收录网站做dj平台网站
  • 南川网站建设公司济南市住房建设网站
  • 甘肃省城乡城乡建设厅网站首页wordpress调用页面名称
  • 书店建设网站国产搜什么关键词最好看
  • 网站建设 王卫洲百度网站的建设目标
  • 网站广告推广怎么做应用商店软件大全
  • 做网站公司怎么样网站开发预付款账务处理
  • 网站备案流程图片学院网站建设项目的活动分解
  • 写网站建设的软文wordpress 支持数据库
  • 安徽网站seo第一次和两个老头做网站
  • 养殖类网站模板三都网站建设
  • wordpress 作品集网站嵌入式软件开发工程师招聘