當前位置:首頁 » 安卓系統 » androidgridview行數

androidgridview行數

發布時間: 2022-06-20 00:04:33

① 安卓中gridview固定列數,怎麼顯示

  1. 如果你的Item的高度是固定的:

  2. 可以通過固定GridView的高度來達到顯示4行的效果。當然,這個要動態計算,不超過四行,GridView的高度就是Item的高度乘以行數,超過四行,就是四行的高度。

  3. 如果你item的高度不是固定的:

  4. 需要動態獲取每個item的高度,然後再計算GridView的高度。

  5. 不知道行不行,你可以試試下面的方法,,如果這個方法不行 那應該就不行

  6. setNumColumns(int numColumns) 設置顯示的列數 (有可能還需要調用一下Adapter的NotifyDataSetChanged)

  7. 要控制行數 只需要控制Adapter的 getCount回調的返回值就行了 然後notify刷新下!

② android GridView 的一個問題,我想把gridview設置成日歷,4行7列,怎麼實現

首先Gridview,設置numcols=7,然後設置每頁的size為4*7 ,這樣能夠保證每頁就是4行7列。 然後就是隱藏textview的問題了,這個實現就有多種方法了。 可以自定一個SurfaceView,在這個SurfaceView中添加textview,當然也可以直接,只是多加一層(遮罩層)。要控制好隱藏很簡單visibility的Gone和visible就行了。看你的Item的xml布局寫的如何了。 要隱藏和顯示可以添加淡入淡出或者其他的動畫效果。

③ 為什麼android gridview只能顯示一行數據

因為在Android中,有這樣一個限制,兩ScrollView型的控制項不能相互嵌套。像ListView和GridView就都是ScrollView型的控制項。因為嵌套後,兩個ScrollView型控制項的滑動效果就喪失了,同時被嵌套控制項的高度也被限定為一行的高度。那我們還能不能嵌套兩個ScrollView型的控制項呢?肯定是可以的。方法有兩種:一是我們去需要自定義ListView或是GridView,並重寫其onMeasure()方法。如下:

public class NoScrollGridView extends GridView {
public NoScrollGridView(Context context) {
super(context);
}
public NoScrollGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
ListView也同理。
還有一種方法是我們重新動態地計算我們現在需要的高度。在我們調用Adapter的時候,我們獲得現在這個時候的GridView有多少個,單個GridView的高度,然後計算總高度。具體代碼如下:

/**
* 重新計算listView高度
* @param listView
*/
public static void (ListView listView) {
// 獲取ListView對應的Adapter
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}

int totalHeight = 0;
for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount()返回數據項的數目
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0); // 計運算元項View 的寬高
totalHeight += listItem.getMeasuredHeight(); // 統計所有子項的總高度
}

ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
// listView.getDividerHeight()獲取子項間分隔符佔用的高度
// params.height最後得到整個ListView完整顯示需要的高度
listView.setLayoutParams(params);
}
在我們setAdapter()的之前,我們調用上面的方法,如(accomplishmentStateListView);
因為我是在ListView中嵌套GridView,所以重新計算GridView的總高度的時候,要放在setAdapter(...GridViewAdapter)這個BaseAdapter的衍生類里。代碼如下:

/**
* 計算gridview高度
* @param gridView
*/
public static void (GridView gridView) {
// 獲取GridView對應的Adapter
ListAdapter listAdapter = gridView.getAdapter();
if (listAdapter == null) {
return;
}
int rows;
int columns = 0;
int horizontalBorderHeight = 0;
Class<?> clazz = gridView.getClass();
try {
// 利用反射,取得每行顯示的個數
Field column = clazz.getDeclaredField("mRequestedNumColumns");
column.setAccessible(true);
columns = (Integer) column.get(gridView);
// 利用反射,取得橫向分割線高度
Field horizontalSpacing = clazz
.getDeclaredField("mRequestedHorizontalSpacing");
horizontalSpacing.setAccessible(true);
horizontalBorderHeight = (Integer) horizontalSpacing.get(gridView);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
// 判斷數據總數除以每行個數是否整除。不能整除代表有多餘,需要加一行
if (listAdapter.getCount() % columns > 0) {
rows = listAdapter.getCount() / columns + 1;
} else {
rows = listAdapter.getCount() / columns;
}
int totalHeight = 0;
for (int i = 0; i < rows; i++) { // 只計算每項高度*行數
View listItem = listAdapter.getView(i, null, gridView);
listItem.measure(0, 0); // 計運算元項View 的寬高
totalHeight += listItem.getMeasuredHeight(); // 統計所有子項的總高度
}
ViewGroup.LayoutParams params = gridView.getLayoutParams();
params.height = totalHeight + horizontalBorderHeight * (rows - 1);// 最後加上分割線總高度
gridView.setLayoutParams(params);
}
這樣我們就可以在ListView中添加GridView了。。。
註:兩個SrcollView型的控制項可以是:

<ListView, GridView>;

<GridView,ListView>;

<ListView,ListView>;

<GridView, GridView>;

<ListView, ScrollView>;

<ScrollView,ListView>;

<GridView, ScrollView>;

<ScrollView, GridView>;

<ScrollView, ScrollView>;

... ...

④ android中GridView默認是從左往右填寫數據的,一行滿了轉至下行, 我如何實現從上往下填寫數據呢

事件裡面設置,內容改變則自動重置輸入起點位置。

⑤ Android中如何讓一個GridView的顯示空間最多4行

  1. 如果你的Item的高度是固定的:

    可以通過固定GridView的高度來達到顯示4行的效果。當然,這個要動態計算,不超過四行,GridView的高度就是Item的高度乘以行數,超過四行,就是四行的高度。

  2. 如果你item的高度不是固定的:

  3. 需要動態獲取每個item的高度,然後再計算GridView的高度。

⑥ android gridview每行的列數不同

這個不行的吧,如果要實現每行的列數不一致的話,就要自定義控制項了,

⑦ Android中如何是GridView的每行自動適應Adapter的個數

android:numColumns是設置列數的,你可以自己設置要顯示多少列,當然你也可以根據屏幕的大小和圖片顯示的大小來動態地設置列數!如果你不設置的話,gallery好想就是自動地調節列數吧!具體沒有去試過!

⑧ 怎麼設置GridView的列數和行數

1.android:numColumns此屬性設置,如果是「auto_fit」,則會根據android:columnWidth和android:stretchMode自動延展。

2.如果想實現上述左右滾動效果的話,建議用Gallery,gridview的xml屬性 3.android:numColumns="6"在adapter里重寫,@Override public int getCount() { return 12; 。

⑨ 怎麼設置GridView的列數和行數

:這個要在數據源綁定之前做處理,先判斷獲取的數據源的條數,是否是設置的固定行數的倍數,如果不是,取余以後,在數據源中新增對應的余數行的空白記錄數(這里要注意一下,如果頁面有做格式化的,比如數字,就需要用0
之類的數字來填補,其他沒...

熱點內容
安卓咪咕音樂怎麼錄制視頻 發布:2024-05-19 07:56:06 瀏覽:837
如何搞出超大聲的聽聲辨位安卓版 發布:2024-05-19 07:46:21 瀏覽:926
linux安全模式 發布:2024-05-19 07:27:25 瀏覽:175
為什麼安卓手機安裝不了cpk 發布:2024-05-19 07:22:21 瀏覽:312
pythonempty 發布:2024-05-19 07:15:16 瀏覽:928
路由器虛擬伺服器搭建 發布:2024-05-19 07:15:15 瀏覽:998
方舟編譯器何時推送 發布:2024-05-19 07:15:10 瀏覽:597
魔獸世界自動釣魚腳本 發布:2024-05-19 06:43:07 瀏覽:495
cbs加密 發布:2024-05-19 06:29:56 瀏覽:202
ssis存儲過程 發布:2024-05-19 06:21:31 瀏覽:632