Android开发之机顶盒上gridview和ScrollView的使用详解_Android

最近在机顶盒上做一个gridview,

其焦点需要在item的子控件上,但gridview的焦点默认在item上,通过
android:descendantFocusability="afterDescendants"

<ScrollView
android:id="@+id/scroll_content"
android:layout_width="1740.0px"
android:layout_height="600.0px"
android:layout_x="81.0px"
android:layout_y="258.0px" >
<com.hysmarthotel.view.MyGridView
android:id="@+id/lightview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="afterDescendants"
android:horizontalSpacing="58dp"
android:numColumns="4"
android:scrollbars="none"
android:stretchMode="columnWidth"
android:verticalSpacing="80dp" />
</ScrollView> 

可以让gridview的子控件获得焦点。但是加了这个属性之后,gridview就会变得无法滚动,后来我就给gridview加了一个ScrollView,

但由于它们两个都有滚动条,所以我重写了一个gridview,让其滚动条消失。终于成功地让gridview可以一直让子控件获得焦点,并且可以顺利滚动。

package com.hysmarthotel.view;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.GridView;
public class MyGridView extends GridView {
public MyGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyGridView(Context context) {
super(context);
}
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);
}
}

ps:我的布局是绝对布局,以及关于item的布局和adapter的代码没什么特别的。CheckBox焦点等级很高。

以上内容给大家介绍了Android开发之机顶盒上gridview和ScrollView的使用详解,希望对大家有所帮助!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索gridview和scrollview
gridview scrollview、gridview在scrollview、scrollview套gridview、scrollview与gridview、scrollview和gridview,以便于您获取更多的相关知识。

时间: 2024-11-02 08:48:11

Android开发之机顶盒上gridview和ScrollView的使用详解_Android的相关文章

Android开发之机顶盒上gridview和ScrollView的使用详解

最近在机顶盒上做一个gridview, 其焦点需要在item的子控件上,但gridview的焦点默认在item上,通过 android:descendantFocusability="afterDescendants" <ScrollView android:id="@+id/scroll_content" android:layout_width="1740.0px" android:layout_height="600.0px

Android开发笔记之:Handler Runnable与Thread的区别详解_Android

在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限.下面看例子: 复制代码 代码如下: package org.thread.demo; class MyThread extends Thread{ private String name; public MyThread(St

Android开发时在模拟器之间短信的收发详解教程

本文通过运行两个Android模拟器,介绍在Android中如何实现短信服务(SMS,short message service)的功能.通过这个例子,我想带给大家的是:更加熟悉之前介绍过的Android应用程序的概念及技术细节,且通过实例调度大家的兴趣.我之所以选择SMS为例子,主要原因是SMS已经非常成熟了,从中可以发掘更多的信息和技术细节,而且我相信大部分人发短信比打电话多. 1.温故知新 广播接收者:一个广播接收者是这样一个组件,它不做什么事,仅是接受广播公告并作出相应的反应.许多广播源

Android常用布局(FrameLayout、LinearLayout、RelativeLayout)详解_Android

很多开发者一听说Android终端的屏幕尺寸五花八门,屏幕分辨率千奇百怪,就觉得Android开发在屏幕适配方面是必定是一件头疼的事情.因为在Android问世之前,广大开发者知道的UI解决方案大致分为两类: 1.在Web开发中的CSS,一层一层的去层叠样式. 2.在iOS开发中去计算每一个UIView的尺寸. 上面两种方案,无论哪种方案面对碎片化严重的Android终端,那都是一场噩梦.好在Android提供了另一套解决方案来应对严重的终端碎片化,这就是布局和9-patch. 这里想来说说布局

Android中用Bmob实现短信验证码功能的方法详解_Android

 这篇文章主要介绍发送验证码和校验验证码的功能,用到一个第三方平台Bmob,那Bmob是什么呢?Bmob可以开发一个云存储的移动应用软件,他提供了大量的标准的API接口,根据需要接入相关服务,开发者可以更加专注于应用的开发,让产品交付更快速,验证码功能就是其中一个. 一.跟其他第三方一样,我们开发之前要做一些准备工作. 1.首先,去官网注册一个帐号:http://www.bmob.cn/: 2.然后就可以创建应用了:具体怎么做Bmob说得很清楚了(官方操作介绍),如果你不想看,我简单说一下:点击

Android自定义进度条的圆角横向进度条实例详解_Android

1.本文将向你介绍自定义进度条的写法,比较简单,但还是有些知识点是需要注意的: invalidate()方法 RectF方法的应用 onMeasure方法的应用 2.原理 画3层圆角矩形,底层为黑色,第二层为灰色,最上一层为进度条颜色,示例图如下: 3.效果图   实现圆角进度条还有很多其他方法,比如在Progress控件里填充圆角图片,通过拉伸图片来达到预想的效果,虽然听起来很简单,但实现起来还是有些麻烦的. 4.解说方法 (1)invalidate()方法 invalidate()是用来刷新

Android中Spinner(下拉框)控件的使用详解_Android

android给我们提供了一个spinner控件,这个控件主要就是一个列表,那么我们就来说说这个控件吧,这个控件在以前的也看见过,但今天还是从新介绍一遍吧. Spinner位于 android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器.Spinner是View类得一个子类. 1.效果图 2.创建页面文件(main.xml) <Spinner android:id="@+id/spinner1" and

Android开发中WebView与原生JS的数据交互详解

关于WebView 我们知道目前android市场上的一些应用采用的开发方式大致分为三种:Native App.Web App.Hybrid App.本文主要是Hybrid App中实现的主要技术native组件与js的数据交互的理解以及实现. Android API中提供了WebView组件来实现对html的渲染.所谓的HybridApp开发方式即是汇集了HTML5.CSS3.jS的相关开发技术,以及数据交换格式json/XML.这显然是Web开发工程师的技能.正是因为如此,众多中小企业选择了

Android开发四大组件Activity/Service/Broadcast Receiver/Content Provider详解

Android开发的四大组件一.Activity详解二.Service详解三.Broadcast Receiver详解四.Content Provider详解外加一个重要组件 intent的详解. 一.Activity详解 Activty的生命周期的也就是它所在进程的生命周期. 一个Activity的启动顺序: onCreate()-->onStart()-->onResume() 当另一个Activity启动时:第一个Activity onPause()-->第二个Activity