Как поместить EditText и Button рядом друг с другом? - PullRequest
8 голосов
/ 08 июня 2011

Я хочу попытаться получить EditText и Button рядом друг с другом. В настоящее время у меня есть место, где кнопка находится справа, а текст редактирования выровнен по левому краю, но кнопка показывает, что она находится над EditText. Я хочу, чтобы кнопка начиналась там, где заканчивается EditText.

Это то, что у меня сейчас есть:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#004D79">
        <RelativeLayout android:id="@+id/relativeLayout1" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content">
        <EditText 
            android:layout_alignParentLeft="true" 
            android:text="EditText"
            android:layout_marginTop="10dp" 
            android:id="@+id/editText" 
            android:layout_height="wrap_content" 
            android:layout_width="fill_parent">
        </EditText>
        <Button android:text="Skip"
         android:id="@+id/skipButton" 
         android:textSize="18sp"
         android:layout_marginTop="10dp" 
         android:layout_alignParentRight="true" 
         android:layout_height="wrap_content" 
         android:layout_width="80dp">
         </Button>
    </RelativeLayout> 
</LinearLayout>

Я пытался настроить ширину EditText с точным значением dp, но затем, когда экран переворачивается по горизонтали, между EditText и Button возникает большой разрыв.

Ответы [ 3 ]

21 голосов
/ 08 июня 2011

Если вы хотите продолжать использовать относительный макет и иметь текст для редактирования, чтобы подняться до кнопки, вы можете добавить это к тексту редактирования xml

android:layout_toLeftOf="@+id/skipButton"
16 голосов
/ 08 июня 2011

Вместо того, чтобы использовать RelativeLayout, просто измените свой LinearLayout, чтобы иметь Android: ориентация = "горизонтальный". Тогда все виды внутри него будут размещены из стороны в сторону. Удалите объекты alignParent (это относительные макеты) и установите для editText (который, я считаю, вы хотите растянуть и заполнить экран) значение layout_weight = "1".

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#004D79"
    >
        <EditText 
            android:layout_alignParentLeft="true" 
            android:text="EditText"
            android:layout_weight="1" 
            android:id="@+id/editText" 
            android:layout_height="wrap_content" 
            android:layout_width="fill_parent">
        </EditText>
        <Button android:text="Skip"
         android:id="@+id/skipButton" 
         android:textSize="18dp"
         android:layout_marginTop="10dp" 
         android:layout_height="wrap_content" 
         android:layout_width="80dp">
         </Button>
</LinearLayout>
1 голос
/ 27 ноября 2015
    <LinearLayout
        android:id="@+id/measure"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/product_description"
        android:layout_margin="10dp"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="20dp"
        android:background="#ff669900"
        android:orientation="horizontal"
        android:padding="1px"
        android:textColor="#fff"
        android:weightSum="2" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:ellipsize="marquee"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:freezesText="true"
            android:gravity="center"
            android:marqueeRepeatLimit="marquee_forever"
            android:padding="5dp"
            android:scrollHorizontally="true"
            android:singleLine="true"
            android:text="IMEI"
            android:textColor="#fff"
            android:textSize="15sp"
            android:textStyle="bold" />

        <EditText
            android:id="@+id/connection_type"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:background="@color/white"
            android:gravity="center"
            android:hint=""
            android:padding="10dp"
            android:textColor="#ff669900"
            android:textSize="15sp" />
    </LinearLayout>

Out Put выглядит так: -

EditText next to TextView

Может быть, это поможет, вы можете изменить TextView на Button или изменить положение, все зависит от вас.

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