首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android EditText 能否通過繼承動態添加按鈕/VideoView 等控件?

     編輯:程式設計綜合問答

直接回答

不能。EditText 繼承自 TextView → View,**不是 ViewGroup**,不具備容納子 View 的能力(無 addView()、無佈局測量分發邏輯)。

替代方案

方案原理適用場景
RichEditor 開源庫基於 WebView 或 EditText + ImageSpan 實現富文本編輯,支援圖片、視頻、按鈕內嵌記事本、郵件編輯器、評論輸入框
Span 機制ImageSpan、DynamicDrawableSpan 在文本流中佔位顯示圖片/自定義 Drawable,點擊事件需自行處理輕量級表情包、@提及、圖文混排
佈局組合外層 LinearLayout/ConstraintLayout 包裹 EditText + 按鈕/VideoView,通過監聽 EditText 內容變化同步調整佈局簡單場景:輸入框右側固定發送按鈕、語音按鈕
自定義 ViewGroup繼承 ViewGroup,內部包含 EditText 及其他控件,重寫 onLayout 實現流式排版高度自定義富文本編輯器(開發成本極高)

推薦開源庫

避坑提醒

不要嘗試繼承 EditText 並強行 addView,會導致 Crash(UnsupportedOperationException)或佈局混亂。Android 視圖體系嚴格區分 View(葉子節點)與 ViewGroup(容器節點)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved