Android動(dòng)態(tài)添加View的問(wèn)題解決方法
后臺(tái)代碼
private void ChangeView()
{
ly.removeAllViews();
LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.grid,null);
GridView gridview = (GridView)layout.findViewById(R.id.gridview);
gridview.setAdapter(new ItemAdapter(MainActivity.this));
gridview.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView arg0, View arg1,
int arg2, long arg3) {
}
public void onNothingSelected(AdapterView arg0) {
}
});
ly.addView(gridview);
}
代碼說(shuō)明:
a). ly為main.xml中id為ContentView的LinearLayout,即需動(dòng)態(tài)添加View的容器
b). ItemAdapter為Grid填充數(shù)據(jù)的輔助類
現(xiàn)象
正常
如果把grid.xml中GridView的代碼直接復(fù)制粘貼到main.xml中LinearLayout容器內(nèi)沒(méi)有任何問(wèn)題,布局正常。
不正常
如上動(dòng)態(tài)添加android:layout_height="fill_parent"就失效,不管這里設(shè)置絕對(duì)數(shù)值如300dp也不行,GridView始終只顯示有Item的內(nèi)容,即容器內(nèi)的View無(wú)法完全填充LinearLayout父容器。
三、 解決代碼
就一行代碼,不知道是Android的Bug還是怎么:
ly.addView(gridview,new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));
結(jié)束
這個(gè)問(wèn)題煩了我兩個(gè)小時(shí)+,不管怎么說(shuō)還是解決了,開(kāi)心ing。
相關(guān)文章
Android 使用ViewPager實(shí)現(xiàn)圖片左右循環(huán)滑動(dòng)自動(dòng)播放
這篇文章主要介紹了Android 使用ViewPager實(shí)現(xiàn)圖片左右循環(huán)滑動(dòng)自動(dòng)播放的相關(guān)資料,非常不錯(cuò),具有參考解決價(jià)值,需要的朋友可以參考下2016-08-08Android 軟鍵盤自動(dòng)彈出與關(guān)閉實(shí)例詳解
這篇文章主要介紹了Android 軟鍵盤自動(dòng)彈出與關(guān)閉實(shí)例詳解的相關(guān)資料,為了用戶體驗(yàn)應(yīng)該自動(dòng)彈出軟鍵盤而不是讓用戶主動(dòng)點(diǎn)擊輸入框才彈出,這里舉例說(shuō)明該如何實(shí)現(xiàn),需要的朋友可以參考下2016-12-12android中soap協(xié)議使用(ksoap調(diào)用webservice)
kSOAP是如何調(diào)用ebservice的呢,首先要使用SoapObject,這是一個(gè)高度抽象化的類,完成SOAP調(diào)用??梢哉{(diào)用它的addProperty方法填寫要調(diào)用的webservice方法的參數(shù)2014-02-02Android高仿2048小游戲?qū)崿F(xiàn)代碼
這篇文章主要介紹了Android高仿2048小游戲?qū)崿F(xiàn)代碼的相關(guān)資料,非常不錯(cuò)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10