机顶盒上gridview+ScrollView的使用。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机顶盒上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: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焦点等级很高。

以上是关于机顶盒上gridview+ScrollView的使用。的主要内容,如果未能解决你的问题,请参考以下文章

Listview或者GridView嵌套在ScrollView中只显示一行item解决方法。

GridView不能添加头布局,并且scrollView与GridView冲突导致一些页面无法融合

Android scrollview和GridView混合使用

如何将 GridView 放入 ScrollView

android ScrollView+GridView GridView不滚动

android 有弹性的ScrollView 简单实现,与处理ScrollView和ListView,GridView之间的冲突