當前位置:首頁 » 安卓系統 » android橫向gridview

android橫向gridview

發布時間: 2022-09-01 09:47:37

① gridview如何控制行數。。

GridView本身不能規定行數,這個類的行數是由寬度和元素個數自動算出來的。不知道樓主想實現哪種效果,我的兩個思路:
1,計算傳入Adapter的元素個數,因為元素總數除以numColumn=行數,這樣你就能得到你想要的numColumn,而它是可以設置的。這樣做的話,元素多了會很擠,可以用ScrollView解決。
2,用橫向的LinearLayout代替GridView,想要兩行就來兩個LinearLayout,三行就來三個,數據人為得先平均分開,給各個Layout

② 求教高手,android下如何讓GridView能夠水平滾動,行數固定是三行

gridview外面套一個horizontalscrollview

③ android GridView 如何設置為左右可滾動

GridView不支持左右滾動。

左右滾動的需求可考慮:

  1. 在外層加一個HorizontalScrollView, 不過這種滑動體驗並不好,上下左右均可滑動,如果是斜著滑的時候,體驗差。當然,如果你會自定義HorizontalScrollView把滑動區分為斜著上下滑和斜著左右滑,再把斜著上下滑的事件傳遞給子View也是可以的。

  2. 可以考慮Viewpager里載入多個GridView,這樣GridView就可以一頁一頁的滑

④ Android GridView橫豎屏切換會丟失數據

如果你想要禁止橫豎屏切換的話可以在配置中修改.
你說有問題,但不知有什麼問題,如果你怕數據丟失
在切換的時候會調用onConfigrationChange方法,才進行切換,你可以重載他,把你的數據進行保存。

⑤ 急求!Android,gridView,兩行間距過大(一頁)。android:horizontalSpacing="2dip"試過無效

android:horizontalSpacing 在Gridview排列的時候不是優先考慮的,GridView有個列數的控制,在當前GridView的寬度下,能展示的完設置的列數則平均分配,在當前不夠分配的時候才會考慮那個android:horizontalSpacing設置的值

⑥ 安卓使用GridView橫向列表和大神製作的HorizontalListView有什麼區別

包裹HorizontalScrollView控制項是GirdView橫向滾動的基本條件
GirdView外包裹LinearLayout是java代碼中參數設置的必要條件
不用自定義組件,只要在布局文件里將ListView放在HorizontalScrollView即可,不用使用自定義組件。
第一種情況是按照ListView原本的屬性每次增加條目都是在下方,而有時候我們需要的是一種可以橫向增加條目的ListView。

⑦ 為什麼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

法1.直接用tablelayout gridview是根據你每行的單元數自動生成的行數;
法2.可以在代碼里根據view數來動態設置列數,比如有10記錄可以設置列數為10/3+1,這樣就有三行四列了。
如果您對我的回答有不滿意的地方,還請您繼續追問;
答題不易,互相理解,互相幫助!

⑨ 怎麼讓gridview記錄橫向顯示

2個方法:
1、用datalist,然後把顯示改為橫向顯示 repeatdirection:horizontal
2、用table 中的column 和row 拼出行和列榜定datagrid上。

⑩ android開發gridview的item問題

1.android:numColumns="3" 可以控制girdview一行顯示多少個item。=「3」就一行顯示3個。
2.讓3個item平分並撐滿屏幕
1)girdview的寬必須設置為match_parent android:layout_width="match_parent",確定整個gridview的寬是撐滿了整個屏幕寬度的。
2)讓adapter裡面載入的布局寬是android:layout_width="match_parent",gridview會自己進行計算寬度。
3)Imageview在adapter view布局中居中,寬也設置為android:layout_width="match_parent"。
4)防止圖片比item小,可以設置Imageview的android:scaleType="fitXY" 會自動拉伸圖片。Imageview 設置src是根據圖片尺寸顯示,background是根據view的大小來顯示。這可以根據你需求來

如果只是顯示圖片的這樣基本就可以了。如果比較復雜的item也只是修改adapterView布局

熱點內容
網路登錄伺服器需要獲取什麼信息 發布:2025-01-12 12:17:32 瀏覽:890
mac終端打開文件夾 發布:2025-01-12 12:17:31 瀏覽:295
第一次安裝如何設置mysql密碼 發布:2025-01-12 12:09:02 瀏覽:280
如何刪除微信伺服器上收藏 發布:2025-01-12 12:08:20 瀏覽:102
吃雞游戲安卓區轉蘋果區怎麼轉 發布:2025-01-12 11:34:00 瀏覽:880
網頁版c語言 發布:2025-01-12 11:21:01 瀏覽:864
安卓怎麼更改排位常用英雄 發布:2025-01-12 11:10:33 瀏覽:561
拆遷的100萬如何配置 發布:2025-01-12 11:08:52 瀏覽:575
如何配置ph值為次氯酸鈉的ph值 發布:2025-01-12 11:08:52 瀏覽:437
pythonarraynumpy 發布:2025-01-12 11:01:47 瀏覽:293