我有一個Xamarin項目。我爲IOS,Android和UWP開發。在我的應用程序中,我有我的UI元素的手動佈局邏輯。在IOS中,我可以使用frame屬性來設置視圖將要呈現的位置。我可以通過使用Canvas作爲容器和Canvas.Left,Canvas.Top屬性來設置x,y位置,並且我的代碼具有執行佈局的邏輯,可以在UWP中執行相同的操作。我很困惑如何在Android中實現這一點。 AbsoluteLayout似乎是一個完美的搭配,但它已被棄用。我可以使用其他佈局來實現此功能,還是應創建自定義ViewGroup類?Android中已棄用的AbsoluteLayout的替代選擇是什麼?
1
A
回答
5
您可以使用FrameLayout並使用頂部和左側邊距在其中定位項目。在XML它看起來是這樣的:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<View
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginLeft="100dp"
android:layout_marginTop="100dp"
/>
</FrameLayout>
如果你想從代碼中設置它,那麼你可以使用的LayoutParams:
FrameLayout.LayoutParams param = (FrameLayout.LayoutParams) view.getLayoutParams();
param.leftMargin = 100;
param.topMargin = 100;
param.height = 50;
param.width = 50;
view.setLayoutParams(param);
注意,在代碼中的值是像素不dp的,所以你會必須轉換。我不知道這將如何轉換爲Xaramin,但它給你的想法。
無論採用哪種方式,您都必須考慮具有不同設備大小的用戶使用您的應用時會發生什麼情況。 Android對絕對佈局沒有多大用處的原因是,有太多不同的設備尺寸/密度,因此通常不切實際。
0
您可以使用相對佈局/框架佈局/自定義佈局。由於絕對佈局難以維護,因此其貶值的原因而不是絕對佈局。
相關問題
- 1. 爲什麼absolutelayout已被棄用?
- 2. kube-up.sh已棄用。什麼是替代
- 3. Android中的AbsoluteLayout的替代方法是什麼?
- 4. 替代Android中的AbsoluteLayout?
- 5. XMLHttpRequest已棄用。代替使用什麼?
- 6. 對於MPAndroidChart已棄用的setDrawCubic()的替代函數是什麼?
- 7. FilterDispatcher已棄用! - 什麼是FilterDispatcher的替代品?
- 8. 已棄用Canvas.getMatrix()的替代方法是什麼?
- 9. 如果NSString stringWithContentsOfFile已被棄用,它的替代是什麼?
- 10. Object.observe的替代方法是什麼,因爲它已被棄用
- 11. 在Android中使用已棄用的AbsoluteLayout類?
- 12. 在Android中使用已棄用的AbsoluteLayout類?
- 13. 如果Swing已被棄用,那麼替代方案是什麼?
- 14. Android - 使用什麼來代替AccountPicker.newChooseAccountIntent,因爲它已棄用
- 15. 替代已棄用的WebResourceLoadDelegate
- 16. 「類型庫已被棄用」,最好的選擇是什麼?
- 17. cvGetHistValue_1D已棄用。什麼是用來代替?
- 18. System.Data.OracleClient.OracleCommand的替代選擇是什麼?
- 19. $('form')[0]的替代選擇是什麼?
- 20. RSpec:'allow_any_instance_of'的替代選擇是什麼?
- 21. $ _SERVER ['PHP_SELF']的替代選擇是什麼?
- 22. 如何在'node-gyp rebuild`中靜默「'NewInstance'已被棄用」警告? v8中NewInstance的替代選擇是什麼?
- 23. instance_eval已棄用,替代產品是什麼?
- 24. iTextSharp OcspClientBouncyCastle構造函數已棄用,替代項是什麼?
- 25. Html.fromHtml()已被棄用,替代方法是什麼?
- 26. [FFmpeg]什麼是替代avpicture_alloc,avpicture ::數據已被棄用
- 27. 替代AbsoluteLayout
- 28. 圖像中已棄用的Notification類的替代方案是什麼?
- 29. 我應該使用什麼來代替已棄用的Date.getHours()
- 30. 用什麼來代替已棄用的UIImagePickerControllerDelegate方法?
你的第二句話是不可理解的。 – technico