как переместить 20dip поле слева от центра? - PullRequest
12 голосов
/ 03 октября 2011

Я хочу переместить поле поиска на 20 пунктов влево от центра.

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 показывает только его центр.

Ответы [ 4 ]

13 голосов
/ 27 марта 2013

Я сделал обходной путь с 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 чем угодно. Тот же принцип, если вы хотите что-то справа от центра.

9 голосов
/ 18 ноября 2015

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

Обходной путь должен использовать невидимое представление, такое как Пробел :

Пробел - это легкий подкласс 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" />
0 голосов
/ 17 ноября 2016

Самый чистый ответ, который не требует загрязнения вашего XML дополнительными представлениями, просто:

Добавьте отступ 40dp справа.


Обоснование:

Заполнение принадлежит вашему представлению , поэтому оно учитывается в своем окончательном размере.Если вы добавите отступ на 40 дп, ваш просмотр будет на 40 дп шире без заполнения.

И поскольку вы центрируетесь, для каждых 2 дп отступов ваш вид будет смещаться только на 1dp влево,так что ваш вид будет двигаться только 20dp, по мере необходимости.

0 голосов
/ 03 октября 2011

Удалить centerHorizontal = true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...