編輯:關於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,androidrecyclerview
RecyclerView,androidrecyclerview1.簡介 RecyclerView是一種新的視圖組,目標是為任何基於適配器的視圖提供相似的渲染方式。它
layout_weight屬性圖解
layout_weight屬性圖解 layout_height的作用: 首先按照聲明的尺寸分配,剩余的空間再按照layout_weight進行分配 一平均分配: 代碼
手機安全衛士——通訊衛士-黑名單的管理,安全衛士衛士
手機安全衛士——通訊衛士-黑名單的管理,安全衛士衛士CallSafeActivity .java public class CallSafeActivity exten
關於Genymotion下載比較慢的解決辦法,genymotion解決辦法
關於Genymotion下載比較慢的解決辦法,genymotion解決辦法 Genymotion號稱Android模擬器中運行最快的,但是服務器在國外,Android鏡
利用bintray-release插件上傳到Bintray- HTTP/1.1 404 Not Found [message:Repo 'maven' was not found]問題解決,bintrayrelease
利用bintray-release插件上傳到Bintray- HTTP/