2016-01-22 117 views
-4

視圖在Android和iOS中的佈局方式之間的根本區別是什麼?我已經在Android中創建了幾個應用程序,其視圖僅用XML設計,但是我還沒有遇到與我在iOS經常使用的基於網格的繪圖機制相對應的Android。在Android中創建自定義視圖時,我通常會以編程方式創建LinearLayout或您有什麼,然後實例化必需的組件,然後瞧。然而,我已經得到習慣的視圖/視圖控制器在IOS,編程方式進行繪製的使用,其通常需要這樣Android視圖與iOS視圖

let profileFrame = CGRectMake(0, 48, 80, 80) 
    profileImageView = UIImageView.init(frame: profileFrame) 
    self.addSubview(profileImageView) 
    self.bringSubviewToFront(profileImageView) 

一些邏輯因此,沒有存在一個模擬到這種視圖幀創建/配售在Android的超級視圖內?或者Android佈局的XML特性是否阻止了這種能力?

+1

「在Android中創建自定義視圖時,我通常會以編程方式創建LinearLayout或您有什麼,然後實例化必需的組件,然後瞧。」 - 所以你已經在Android中以編程方式創建了佈局,但是你正在問如何以編程方式在Android中創建佈局? –

+1

據我所知,你需要一個等同於iOS的框架UIView到Android,不是嗎?因爲你的問題有點不清楚,所以我不太明白。 Android中的[android.graphics.Rect類](http://developer.android.com/reference/android/graphics/Rect.html#Rect(int,int,int,int))可能是你想要的嗎? – Fllo

+0

我在問如何以類似於iOS的性質以編程方式繪製視圖,其中將子視圖添加到超級視圖而不是添加XML元素。我沒有問過如何以編程方式在Android中創建佈局......有三個句子以我的帖子中的問號結尾「Android與iOS中的視圖佈局之間的根本區別是什麼?......那麼是否存在類似於這種視圖框架創建/放置在Android的超級視圖中?還是Android佈局的XML特性阻止了這種能力?「沒有一個提出這個問題。 – Coach

回答

1

你想要的是AbsoluteLayout。除非你真的不想這樣做。請注意,使用它的原因很少,很多原因都沒有。主要原因是屏幕尺寸和設備之間的密度差異使得幾乎不可能在沒有很多紀律的情況下獲得正確的結果。它適用於iOS的原因是設備尺寸和密度的有限數量使UI更加簡單,後臺操作系統可以處理它。不是這種情況,你必須自己做。

您也可以編程方式在代碼中創建LinearLayouts,RelativeLayouts等。它通常不被推薦 - 它很難快速閱讀和編輯。有些情況下,它的有用/必要。