簡體   English   中英

Android 視圖和視圖組

[英]Android View and ViewGroup

在 Android 中ViewGroup繼承自View ViewGroup是一個包含Views的容器。

ViewGroup (LinearLayout)
View (TextView)

為什么 Android 的人們將這種關系定義為Inheritance而不是組合。 由於ViewGroup包含Views不應該是組合嗎?

我認為你對措辭太執着了。

“ViewGroup”完全有理由從“View”繼承“TextView”和“ImageView”或……更重要的是……“ScrollView”或“SurfaceView”(后者兩個都“包含東西”)。

也許“視圖”不一定是術語的最佳選擇……但類層次結構完全合理。 不管它的子類被命名為什么:)

恕我直言 ...

我認為這是復合設計模式的一個很好的例子:

http://en.wikipedia.org/wiki/Composite_pattern

即使命名可能不是最好的......

ViewGroupView的(子類),因為它可以在重要方面充當視圖:

  • 它可以是布局 XML 文件中的一個元素
  • 它可以顯示在屏幕上(通過顯示它的子視圖,它自己的背景顏色等)
  • 它與視圖層次結構的其余部分一起膨脹
  • 它可以作為活動的內容視圖(通過setContentView()

所以它真的是一個View

我同意類名ViewGroup有點混亂,因為它聽起來像是一個組,而不是一個視圖。 如果笨拙,將其稱為ViewGroupView可能更合乎邏輯。

為什么 Android 的人們將這種關系定義為繼承而不是組合? 由於 ViewGroup 包含 Views 不應該是組合嗎?

在這種情況下,繼承和組合並不相互排斥。 ViewGroup 是一個視圖(繼承) 一個 ViewGroup 可以包含視圖(組合)。

閱讀官方文檔是黃金法則。

ViewGroup 是一個特殊的視圖,可以包含其他視圖(稱為子視圖)。視圖組是布局和視圖容器的基類。 該類還定義了 ViewGroup.LayoutParams 類,該類用作布局參數的基類。


如果您仍然沒有找到它是什么,請使用谷歌圖片搜索:

在此處輸入圖片說明

ViewGroup 是一種特殊的視圖,可以包含其他視圖。 - 視圖組是布局和視圖容器的基類 - 例如,RelativeLayout 是包含 TextView(View) 和其他布局的 ViewGroup。

參考信息鏈接: https : //developer.android.com/reference/android/view/ViewGroup.html

視圖代表用戶界面組件的基本構建塊——它在屏幕上占據矩形,負責繪制和處理事件。 - 示例有 EditText、Button、TextView 等

參考信息鏈接: https : //developer.android.com/reference/android/view/View.html

Android 應用程序中的所有 UI 元素都是使用ViewViewGroup對象構建的。

  1. View :- View 是一個對象,它在屏幕上繪制一些用戶可以與之交互的東西。
  2. ViewGroup :- ViewGroup 用於保存視圖和視圖組。

視圖組繼承視圖的屬性,並與其他視圖和視圖組做更多的事情

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM