Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發之機頂盒上gridview和ScrollView的使用詳解

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的使用詳解,希望對大家有所幫助!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved