Подтвердить что ты не робот

Как перемещать маржу 20dip слева от центра?

Я хочу переместить маркер пробега 20dip, оставшийся от центра.

android:progressDrawable="@drawable/progress_vertical"
            android:thumb="@drawable/seek_thumb" android:layout_height="80dip"
            android:layout_width="20dip" android:layout_marginBottom="50dip"
            android:layout_alignParentBottom="true" android:visibility="gone"
            android:layout_centerHorizontal="true" android:layout_marginLeft="20dip" /> 

но указанный выше код xml показывает только центр.

4b9b3361

Ответ 1

Я сделал обходной путь с TextView посередине, у которого нет содержимого (и не видно).

<TextView
        android:id="@+id/viewMiddleInvisible"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btnAtTheTop"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp" />

<TextView
        android:id="@+id/tvAtLeft"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/viewMiddleInvisible"
        android:layout_marginRight="10dp"
        android:layout_toLeftOf="@id/viewMiddleInvisible"
        android:text="Some text" />

Вам, очевидно, придется заменить tvAtLeft тем, что вы хотите. Тот же принцип, если вы хотите иметь что-то справа от центра.

Ответ 2

android:layout_centerHorizontal и android:layout_marginLeft не работают вместе.

Обходным путем является использование невидимого представления, такого как Space:

Пространство - это легкий подкласс View, который может использоваться для создания пробелов между компонентами в схемах общего назначения.


Итак, для вашего случая, внутри вашего RelativeLayout, это должно сделать:

<Space
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:id="@+id/blankspace" />

<ProgressBar
    android:progressDrawable="@drawable/progress_vertical"
    android:thumb="@drawable/seek_thumb"
    android:layout_height="80dip"
    android:layout_width="20dip"
    android:layout_marginBottom="50dip"
    android:layout_alignParentBottom="true"
    android:layout_toRightOf="@id/blankspace"
    android:visibility="gone" />

Ответ 3

Ответ:

Добавьте 40dp дополнение справа.

Почему это работает:

Поскольку это дополнение относится к вашему представлению, и поэтому оно учитывает его окончательный размер. Для всех Android-устройств ваш мягкий вид будет на 40dp шире, чем если бы он не был дополнен, и ваше содержимое View не изменится.

Кроме того, поскольку вы центрируетесь, для каждого 2dp, который вы помещаете в android:paddingRight, ваш вид будет перемещаться 1dp влево, и, таким образом, ваш вид будет перемещаться 20dp

Ответ 4

Удалите centerHorizontal = true.