scrollview 与 listView 的显示不全问题

使用两个GridView,两个GridView一起上下滚动;
如果直接将两个GridView添加到同一个界面上,它们是各自滚动的。
因此,我考虑使用SrollView,将它们包装一下!
但这样做会提示如下信息:
The vertically scrolling ScrollView should not contain another vertically scrolling widget (GridView)
并且GridView的界面也显示不全,只显示了一部分。

网上搜了一下,使用下面这个方法,效果挺好的!能满足我的需求!
从GridView派生出一个自定义的类(MyGridView),重载其测量方法(onMeasure):

 

/*** @Type: MyGridView* 让GridView可以做ScrollView的子控件,但尺寸不会减小*/
public class MyGridView extends GridView {public MyGridView(Context context) {  super(context);  }  public MyGridView(Context context, AttributeSet attrs) {  super(context, attrs);  }  public MyGridView(Context context, AttributeSet attrs, int defStyle) {  super(context, attrs, defStyle);  }  @Override  public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,  MeasureSpec.AT_MOST);  super.onMeasure(widthMeasureSpec, expandSpec);  }    
}  

 

 

 

在XML中,将原来使用系统的GridView,替换成自定义的MyGridView即可:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="fill_parent"android:layout_height="wrap_content">
<RelativeLayout android:layout_width="wrap_content"android:layout_height="wrap_content"tools:context=".MainActivity" ><com.gaojinshan.MyGridViewandroid:id="@+id/gv_app1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:horizontalSpacing="0dp"android:gravity="center"android:numColumns="4"android:stretchMode="columnWidth" android:verticalSpacing="0dip"/><com.gaojinshan.MyGridViewandroid:id="@+id/gv_app2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/gv_app1"android:horizontalSpacing="0dp"android:gravity="center"android:numColumns="2"android:stretchMode="columnWidth" android:verticalSpacing="0dip"android:scrollbars="none"/>
</RelativeLayout>
</ScrollView>

 

在GridView所在页的其他控件的XML里配置上focusableInTouchMode=true,如下所示:

 

  1. android:focusable="true"  
  2. android:focusableInTouchMode="true" 

 

 

在点击切换到该页面时,使用ScrollView的smoothScrollTo(0, 0)方法,将滚动条置顶

 

        public void onClick(View v) {mViewPager.setCurrentItem(item);View view = mViewPager.getChildAt(item);if (view != null) {((ScrollView) view).smoothScrollTo(0, 0);}}

 

转载于:https://www.cnblogs.com/regalys168/p/4848270.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419503.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java编程中的基本概念

1.Java的JVM内部统一使用的字符表示是Unicode编码&#xff08;不选用任何特定的编码&#xff0c;直接使用它们在字符街中的编号&#xff0c;这是统一的唯一的方法&#xff09;。 2.在JVM加载类的时候&#xff0c;需要经过三个步骤&#xff1a;装载&#xff0c;连接&#xff0c…

怀化学院计算机科学专业排名,2019怀化学院专业排名

怀化学院创办于1958年&#xff0c;前身为怀化师范高等专科学校&#xff0c;2002年经国家教育部批准升格为全日制普通本科院校。不知道选择什么专业好的同学可以根据自己的学习成绩、兴趣爱好来选择自己喜欢的专业。下面是学习啦小编给大家带来的怀化学院专业排名&#xff0c;供…

C++中的也能使用正则表达式

正则表达式Regex(regular expression)是一种强大的描述字符序列的工具。在许多语言中都存在着正则表达式&#xff0c;C11中也将正则表达式纳入了新标准的一部分&#xff0c;不仅如此&#xff0c;它还支持了6种不同的正则表达式的语法&#xff0c;分别是&#xff1a;ECMASCRIPT、…

html文件设置ftp6,vsftp的安装与配置

环境mint17.21.安装dpkg -l|grep ftpsudo apt-get install vsftpd2.去根目录创建一个文件上传的文件夹sudo mkdir /ftpfile3.创建一个用户&#xff0c;他只对上传文件有权限&#xff0c;对系统登录无权限sudo useradd ftpuser -d /ftpfile/ -s /bin/bash4.用chown修改ftpfile的…

筛选法求1到100以内的素数

问题描述&#xff1a; 所谓“筛选法”指的是“埃拉托色尼(Eratosthenes)筛法”。他是古希腊的著名数学家。他采取的方法是&#xff0c;在一张纸上写上1到100全部整数&#xff0c;然后逐个判断它们是否是素数&#xff0c;找出一个非素数&#xff0c;就把它挖掉&#xff0c;最后剩…

Java基础知识强化之集合框架笔记27:ArrayList集合练习之去除ArrayList集合中的重复字符串元素...

1. 去除ArrayList集合中的重复字符串元素&#xff08;字符串内容相同&#xff09; 分析&#xff1a; &#xff08;1&#xff09;创建集合对象 &#xff08;2&#xff09;添加多个字符串元素&#xff08;包含重复的&#xff09; &#xff08;3&#xff09;创建新的集合 &#xf…

女生学医检好还是学计算机好,女生学医选择什么专业好?

就现在的医疗环境而言&#xff0c;学医不是最佳选择&#xff0c;很多医生都说不让自己的孩子再学医&#xff0c;这意味着什么&#xff0c;可想而知。但既然选择了学医&#xff0c;而且恰恰学医是自己的梦想的话&#xff0c;没有理由不去做好它。女孩子有自己的弱点&#xff0c;…

Java Servlet API中的forward()方法和redirect()方法的区别

forward&#xff08;&#xff09;&#xff1a;是容器中控制权的转让&#xff0c;在客户端浏览器地址栏不会显示转向后的地址。forward会将 request state、bean、等信息带到下一个jsp页面&#xff1b;使用getAttribute&#xff08;&#xff09;来取得前一个jsp所放的信息。默…

电子科技大学计算机读博好毕业,高产博士生读博一年达毕业要求:写论文不无聊...

(原标题&#xff1a;成电学子读博一年达毕业要求&#xff1a;写论文不无聊&#xff0c;别把挂科当潮流)扎在实验室写代码、跑数据的许潇突然成为全校谈论的焦点&#xff0c;一连串“牛”、“太强了”、“佩服”钻进耳朵。“21岁保研到成电(电子科技大学)&#xff0c;22岁成为国…

数学入门题——《算法竞赛入门经典-训练指南》

题目链接&#xff1a;http://acm.hust.edu.cn/vjudge/contest/view.action?cid94017#overview 代码链接&#xff1a;https://github.com/YvetteYue/ACM/tree/master/math%E5%85%A5%E9%97%A8 A题&#xff1a;UVA11388 GCD LCM 这道题求得是已知GCD和LCM 求最小的a情况下的a和b …

同步容器和并发容器的区别

同步容器&#xff1a;可以简单地理解为通过synchronized来实现同步的容器&#xff0c;如果有多个线程调用同步容器的方法&#xff0c;它们将会串行执行。比如Vector&#xff0c;Hashtable&#xff0c;以及Collections.synchronizedSet&#xff0c;synchronizedList等方法返回的…

当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?

总的思路&#xff1a;在浏览器地址栏键入URL&#xff0c;按下回车之后发生的几个事件&#xff1a; 1&#xff09;浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址&#xff1b; 2&#xff09;解析出IP地址后&#xff0c;根据该IP地址和默认端口80&#xff0c;和服务器建立…

上海音乐学院计算机考研难吗,上海音乐学院考研难吗?一般要什么水平才可以进入?...

问&#xff1a;从上海音乐学院毕业的学生就业怎么样&#xff1f;值不值得报考&#xff1f;答&#xff1a;想要了解更多毕业生就业情况见>>>就业报告汇集总之&#xff0c;上海音乐学院就业率相对来说是比较良好的&#xff0c;如果大家对此学校感兴趣的话&#xff0c;可…

Java-消息框显示两整数加减乘除

//两个整数加减乘除 //Qi Ming Liu,October 7,2015 import javax.swing.JOptionPane; public class Calculater { public static void main(String args[]) { //用户输入的两个数。 String firstNumber,secondNumber; //两个加数&#xff0c;以及和、差、积、商。 int numb…