FrameLayout
在Android中有什麼用途?是否有任何特定的設計方案?FrameLayout的目的是什麼?我們應該在哪種場景中使用它?
在我的Android應用程序中,我有一個場景,我必須展示兩個ImageView
s,一個在另一個之上。這是一個.png
圖像文件,在此圖像上可以繪製9個補丁。
其中ViewGroup
應該用於此目的:RelativeLayout
或FrameLayout
?
我也想知道每個ViewGroup
s應該用於不同的情況。
FrameLayout
在Android中有什麼用途?是否有任何特定的設計方案?FrameLayout的目的是什麼?我們應該在哪種場景中使用它?
在我的Android應用程序中,我有一個場景,我必須展示兩個ImageView
s,一個在另一個之上。這是一個.png
圖像文件,在此圖像上可以繪製9個補丁。
其中ViewGroup
應該用於此目的:RelativeLayout
或FrameLayout
?
我也想知道每個ViewGroup
s應該用於不同的情況。
是的,您可以在您的方案中使用FrameLayout
。
我不記得我是怎麼到這個問題,但這裏是我的回答可以幫助的人:
正如你可以看到here
FrameLayout裏被設計來阻擋在一個區域屏幕顯示單個項目。通常情況下,應該使用FrameLayout來保存單個子視圖,因爲可以很容易地組織子視圖,這種方式可以根據不同的屏幕尺寸進行擴展,而不需要兒童相互重疊。
一般來說,如果你有2個視圖,因爲你會產生透支效應(多次繪製的屏幕區域不止一次,這實際上是無用的)。
如果你真的有,那麼你需要使用的onDraw方法(你可以看到一個例子here)和Canvas API(看看here)和clipRect方法(你可以看到一個例子here)
關於FrameLayout或RelativeLayout,如果你想保持簡單或者你的活動已經有足夠的嵌套佈局,最好使用FrameLayout。在2017年,還有一些約束佈局可能會有所幫助。
我可以使用或我應該使用? :)是否有任何性能問題與使用幀或相對佈局相關?希望你明白我的觀點。 – Ankit
@Ankit我不確定性能問題(我會假設'FrameLayout'具有更小的內存佔用,因爲它更簡單)。 'FrameLayout'配置起來更容易(只是'Gravity.LEFT','Gravity.RIGHT'等)''RelativeLayout'要複雜得多,而且可配置性更強。只要選擇你需要的複雜情況。 – Ancantus