Android自定義LinearLayout布局顯示不完整的解決方法
發(fā)現(xiàn)問題
原需求,在一個伸縮列表中,自定義LinearLayout繼承LinearLayout動態(tài)添加布局。

然而實現(xiàn)的時候:一共遍歷了30條數(shù)據(jù),卻只顯示了一條

斷點查看代碼:遍歷addView()這個過程是正常的30次循環(huán)。那是布局的問題?

感覺沒毛病。。。試著在自定義布局外層再加一層LinearLayout垂直方向,wrap_content和match_parent?都試了依舊無效

毛發(fā)都被抓掉了好幾根
。
。
只能谷歌,找度娘了
終于翻到這個Android - 自定義View不顯示,非常感謝作者~
Android - 自定義View不顯示
說明:
自定義了一個LinearLayout,顯示不出來
原因是必須有
public ManDaoH5View(Context context, AttributeSet attrs) {
這個方法是自定義LinearLayout初始化調(diào)用的方法,LinearLayout自己的屬性也必須寫再這個方法里面否則屬性也會不起作用,例如:setOrientation(VERTICAL);
代碼:
public class ManDaoH5View extends LinearLayout {
public ManDaoH5View(Context context, AttributeSet attrs) {//這個方法必須有,否則自定義的LinearLayout不會顯示
super(context, attrs);
setOrientation(VERTICAL);//水平排布(自身布局屬性必須寫在這里,寫在別的地方會不起作用)
//initChild(context, url);//這一行不要加,別的地方引用這個布局,就會運行這個方法,此時webview還沒有連接,會出錯
}
}
解決方案兩種!
一:布局文件中添加。。。自定義的LinearLayout也是Liearlayout呀,怎么能把它的方向忘了呢?

二:在構造方法中添加:
如果你是直接new這個自定義View就在一個參數(shù)的構造方法添加;如果你是在xml中引用這個自定義view便在兩個參數(shù)的構造方法中引用;三參數(shù)的構造方法忘記是什么情況調(diào)用了(o(╯□╰)o)
setOrientation(VERTICAL);

后記:前面的在xml中再嵌套一層布局,曾經(jīng)解決過這個問題,所以雖然這次沒解決問題也寫了出來??赡苣菚r候繼承的是view或其他的,所以如果有伙伴在構造中或xml加了方向的屬性不起作用可以試試這個。
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
Android開發(fā)中requestfocus()無效的原因及解決辦法
這篇文章主要介紹了Android開發(fā)中requestfocus()無效的原因及解決辦法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-08-08
Android利用Sensor(傳感器)實現(xiàn)指南針小功能
這篇文章主要為大家詳細介紹了Android利用Sensor(傳感器)實現(xiàn)指南針小功能的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02
Flutter app頁面路由以及路由攔截的實現(xiàn)
本篇介紹了介紹了Flutter如何使用路由來實現(xiàn)頁面的跳轉,從而簡化頁面之間的耦合,并可以實現(xiàn)路由攔截。2021-06-06
Android如何創(chuàng)建自定義ActionBar
這篇文章主要教大家如何創(chuàng)建自定義的ActionBar,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-11-11
Android Studio應用開發(fā)集成百度語音合成使用方法實例講解
這篇文章主要介紹了Android Studio應用開發(fā)集成百度語音合成使用方法實例講解的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-11-11

