簡體   English   中英

如何布局一個從中心而不是左上角開始計算邊距的視圖?

[英]How to layout a view that count margin from it's center instead of top-left on Android?

假設我有一個圖像圖標,我想將圖標中心與父視圖左側之間的距離設置為20dp,則圖標的大小可能會更改。 我該如何實施?

就像iOS中的CenterX約束一樣,當您創建約束時,您可以從Leading,Trailing或CenterX中進行選擇。 但是我在Android上找不到任何類似的東西。

更新:請參見下圖,紅色矩形內的圖標,我要將從centerX到窗口左側的距離設為20dp。 marginLeft從圖標的左側算起,不是我想要的。 我確實有一些解決方案,例如將所有圖標固定為相同大小,或將圖標包裝在另一個ViewGroup中並固定ViewGroup大小,只是想知道是否存在iOS上的centerX約束之類的方法。 在此處輸入圖片說明

這看起來像是列表的一部分,因此我假設您的布局中有一個圖標。

寬40dp的FrameLayout ,圖標居中

    <FrameLayout
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:layout_marginRight="-8dp">
        <ImageView
            android:layout_gravity="center_horizontal"/>
    </FrameLayout>

如果40dp包裝器的寬度太大,請設置負的右邊緣以減小它(如圖所示)。

暫無
暫無

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

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