Android GridView自適應高度(不出現滾動條)
最近有個需求就是,網格狀顯示,且需要自適應高度(不出現滾動條,如果有滾動條就需要考慮GrideView互相巢狀的滑動事件編寫了,雖然不麻煩,但佈局看起來卻不一定好看),大概看了一下網上的解決方法,最終採用瞭如下方案:
public class MyGridView extends GridView {
public MyGridView(Context context) {
super(context);
}
public MyGridView(Context context, AttributeSet attrs) {
super (context, attrs);
}
public MyGridView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2 ,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
@Override
public int getNumColumns() {//可以不復寫,但必須在xml中宣告android:numColumns="3"
return 3;
}
}
xml:
<com.xx.view.MyGridView
android:id="@+id/legend_grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchMode="columnWidth"
android:layout_margin="20dp"
android:numColumns="3"/>
另外,提供大家一個可以不用複寫GrideView的方法,但要每次更新資料後都用該方法設定一下高度(同樣需要在xml中配置GridView的 android:numColumns):
/**
* gridview計算高度
* */
public static void setGridViewHeightByChildren(GridView gridView){
//獲取gridview高度
ListAdapter listAdaper=gridView.getAdapter();
if(listAdaper==null){
return;
}
//總高度
int totalHeight=0;
//計算行數 向上取整
int lineNum=Math.ceil((double)listAdaper.getCount()/(double)gridView.getNumColumns());
View item=listAdaper.getView(0,null,gridView);
item.measure(0,0);
//獲取高度和
totalHeight=item.getMeasuredHeight()*lineNum;
//佈局引數
ViewGroup.LayoutParams params=gridView.getLayoutParams();
//設定佈局高度
params.height=totalHeight;
//設定margin
((ViewGroup.MarginLayoutParams)params).setMargins(10,10,10,10);
//設定引數
gridView.setLayoutParams(params);
}
相關推薦
Android GridView自適應高度(不出現滾動條)
最近有個需求就是,網格狀顯示,且需要自適應高度(不出現滾動條,如果有滾動條就需要考慮GrideView互相巢狀的滑動事件編寫了,雖然不麻煩,但佈局看起來卻不一定好看),大概看了一下網上的解決方法,最終採用瞭如下方案: public class
textarea如何實現高度自適應(不出現滾動條)
今天需要些一個回覆評論的頁面,設計師給的初始介面就是一個只有一行的框。然後當時就想這個互動該怎麼實現比較好,然後想起了新浪微博的做法:點選評論,預設顯示一行,當輸入的文字超過一行或者輸入Enter時,輸入框的高度會隨著改變,直到輸入完畢。頓時覺得這個細節做得挺不錯的,可以效仿下。下面分享2種實現text
iframe 自適應高度 去掉iframe滾動條 只留外面頁面的滾動條
解決方法如下: 在iframe所呼叫的頁面增加如下程式碼: $(document).ready(function(){ if(window.parent != window){ parent.document.getElementById("mainMenu
Android使用GridView內容填充滿不出現滾動的設計
GridView顯示不完成的原因是因為,他的外層也套用了一個滑動的控制元件,解決的方法就是重寫GridView,使控制GridView不能滾動,就是寫一個類繼承GridView。程式碼如下: publ
JS怎麼控制IFRAME高度自動適應內容而不出現滾動條
下面開始講: 通過Google搜尋iframe 自適應高度,結果5W多條,搜尋iframe 高度自適應,結果2W多條。我翻了前面的幾十條,刨去大量的轉載,有那麼三五篇是原創的。而這幾篇原創裡面,基本上只談到如何自適應靜的東西,就是沒有考慮到JS操作DOM之後,如何做動態同步
android ViewPager 自適應高度
很多Android開發者會遇到的問題,ViewPager無法自適應內容的高度,包括子Fragment或view 下面根據需求給出2中方式來動態根據內容設定ViewPager的高度: 1.是網上大家都說的取所有view最大高度作為ViewPager的高度程式碼
Android GridView n行,自適應高度佔滿螢幕,不滾動
今天客戶提出一個問題,要求我們首頁的GrdiView,不要滾動,並且要根據不同的解析度的手機和不同大小的手機,來自適應。高度佔滿螢幕。 於是我就開始了做螢幕的自適應。。首先,我根據張鴻洋大神的關於螢幕的自適應部落格的http://blog.csdn.net/l
iOS:解決UITextView自適應高度粘貼大量文字導致顯示不全的問題
tex 顯示 輸入框 textview size self. uitext sel lec 一、描述 在UITextView輸入框中粘貼大量的文字時,UITextView內容自適應高度計算出現誤差,導致整塊文字上移消失。 二、方案 在UITextView文字改變的監聽中
Android評論彈出窗根據輸入法自適應高度
需求分析:當我們點選輸入框時,會調出輸入法軟鍵盤,如果不做處理,PopupWindow評論視窗可能會擠到螢幕最上方,更糟糕的事件是看不到我們的輸入框,連自己輸入什麼內容都看不到,這樣使用者體驗非常差!下面先讓大家看我們做出來的效果圖: 上圖可以看出,輸入法彈出和隱藏,對
RecyclerView 高度不能隨著Item數量 自適應高度
round and cycle cal ica hit ati out 沒有 在最近項目中遇到 ,在RecyclerView加載list數據時,高度無法自適應增長,看了很多博客,各種嘗試,都沒有解決這個問題,在某個博客中,講到此解決方法,在此記錄下。 即在RecyclerV
android GridView在固定高度內滾動(展示高度比滾動高度要高)
GridView在固定高度內滾動 電視TV裡有個需求,海報列表展示兩行半,下面的半行上面有半透的遮罩。滾動的時候只在兩行的範圍內滾動,焦點不觸底。 解決辦法 GridView和ListView有個clipToPadding屬性,預設是true
div 自適應高度 最大高度後滾動條顯示
背景:為解決這樣一種情況:設定div的最大高度為xx%,想要自適應瀏覽器視窗高度,但是超出div高度的部分,就算設定滾動條scroll或者auto,滾動條也並不會顯示出來。而max-height為具體px的則會顯示。下面隨便弄點程式碼說明這2種情況: 一、高度自適應設定為
iOS UITextView自適應高度貼上大量文字導致顯示不全問題處理
對UITextView做了輸入自適應高度處理,在貼上大量文字時出現了高度可自適應但文字顯示不全的問題,檢視圖層發現_UITextContainerView顯示的高度和實際高度不同,在自適應高度程式碼後新增下面程式碼,問題得到處理。 [textView sc
gridview 自適應平均android介面
需要重寫 GridView和BaseAdapter public class WrapGridview extends GridView{ public WrapGridview(Context context) { super(context);
Android中NestedScrollView巢狀RecyclerView出現滾動不流暢的問題
在使用support-v4包中的NestedScrollView時,如果在其中巢狀使用RecyclerView,會出現滑動不流暢的問題,佈局如下: <?xml version="1.0" enc
IE8下DIV嵌套出現外層自適應高度
升級了IE8,發現了好些問題,一開始用IE6和IE7都沒有的新問題出現了,總歸時間有餘,就四處查閱解決辦法,大概就是以下的四種方法!<div id=”a1″><div id=”b1″></div><div id=”b2″></div></di
android ListView 巢狀scrollView 自適應高度
很多時候我們的需求要求我們在scrollView裡面巢狀ListView,但是直接巢狀的話,ListView只會顯示一個Item,這時候就需要ListView根據Item的數量來自適應高度了。 //
子元素div高度不確定,父div自適應高度
在最外層div加以下樣式 height:100%;overflow:hidden; 其它方法: Div即父容器不根據內容自適應高度,我們看下面的程式碼: <div id="main"> <div id="content"></div&g
ListView 與 GridView 在ScrollView中自適應高度
ListView public static void setListViewHeightBasedOnChildren(ListView listView) { if (limi
Android ListView 自適應大小,不覆蓋下方View
ListView設定為wrap_content,但是隨著ListView中item的增加,ListView將會覆蓋到下方的View,View看不到。 利用android:layout_weight屬