編輯:關於android開發
轉載:http://blog.csdn.net/luohai859/article/details/39347583
關於為什麼只顯示一行,個人理解是:如果單獨使用GridView和ListView,裡面的內容是固定的,底層系統很容易計算出控件要占用的寬高,當外面嵌套一層ScrollView後,就能做上下或左右滑動,但能滑動多少系統不知道,這時就需要你給計算出一個滑動區域給ScrollView。而這個數值就是通過GridView和ListView中的內容總的寬高之和。有更精確的理解歡迎賜教。解決的辦法有兩種:
public void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); ((MarginLayoutParams)params).setMargins(15, 15, 15, 15); listView.setLayoutParams(params); }
方法二:重寫GridView和ListView的onMeasure方法,直接給它一個足夠大的高度:
重寫ListView:
public class MyListView extends ListView { public MyListView(Context context) { // TODO Auto-generated method stub super(context); } public MyListView(Context context, AttributeSet attrs) { // TODO Auto-generated method stub super(context, attrs); } public MyListView(Context context, AttributeSet attrs, int defStyle) { // TODO Auto-generated method stub super(context, attrs, defStyle); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // TODO Auto-generated method stub int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
重寫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); } }
RecyclerView,androidrecyclerview1.簡介 RecyclerView是一種新的視圖組,目標是為任何基於適配器的視圖提供相似的渲染方式。它
layout_weight屬性圖解 layout_height的作用: 首先按照聲明的尺寸分配,剩余的空間再按照layout_weight進行分配 一平均分配: 代碼
手機安全衛士——通訊衛士-黑名單的管理,安全衛士衛士CallSafeActivity .java public class CallSafeActivity exten
關於Genymotion下載比較慢的解決辦法,genymotion解決辦法 Genymotion號稱Android模擬器中運行最快的,但是服務器在國外,Android鏡
利用bintray-release插件上傳到Bintray- HTTP/