android机顶盒子的基本操作,Android开发之机顶盒上gridview和ScrollView的使用详解

本文详细讲述了在Android机顶盒应用中,如何解决GridView的子控件焦点问题,同时保持滚动功能。作者分享了自定义GridView以移除滚动条并与ScrollView结合的方法,以及关键代码实现。
摘要由CSDN通过智能技术生成

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

393c2002f4984e98e49a2e3254dcf789.png

其焦点需要在item的子控件上,但gridview的焦点默认在item上,通过

android:descendantFocusability="afterDescendants"

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" >

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" />

可以让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的使用详解,希望对大家有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值