最近在機頂盒上做一個gridview,

其焦點需要在item的子控件上,但gridview的焦點默認在item上,通過
android:descendantFocusability="afterDescendants"
<ScrollViewandroid: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.MyGridViewandroid: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的使用詳解,希望對大家有所幫助!
新聞熱點
疑難解答