Как выровнять виды в середине другого базового вида? - PullRequest
12 голосов
/ 16 июня 2010

Как вы выравниваете виды относительно "средней" части другого вида?

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

alt text

Ответы [ 4 ]

2 голосов
/ 08 октября 2010

Я использовал следующий код, но он все еще имеет некоторые недостатки: вам следует изменить значение:

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget"
android:layout_width="fill_parent"
android:layout_height="wrap_content"

android:layout_gravity="center_horizontal|center_vertical"
>
<EditText 
    android:id="@+id/bullet"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"

    android:paddingRight="4dip"
    android:includeFontPadding="false"
    android:lines="4"
    android:text="hidhidihfidhfdifhdifhdifhidhfidf" />
<ImageView
    android:id="@+id/icon"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:background="#ffff00"
    android:src="@drawable/icon"
    android:layout_alignTop="@id/bullet"

     android:layout_marginLeft="50dip" />

  <ImageView
    android:id="@+id/icon1"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"

    android:background="#ff00ff"
    android:layout_alignBottom="@id/bullet"

    android:layout_marginLeft="100dip"
    android:src="@drawable/star_logo" />

  </RelativeLayout>
1 голос
/ 02 февраля 2012

@ pengwang и кому это может касаться

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <ImageButton
            android:id="@+id/iB"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher"
            android:layout_alignParentBottom="true" />

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button"
            android:layout_alignParentBottom="true"
            android:layout_toRightOf="@id/iB"
            android:layout_alignBaseline="@id/relativeLayout1" />
    </RelativeLayout>
</LinearLayout>
0 голосов
/ 02 февраля 2012

Для размещения вашего центра просмотра родительского вида вам просто нужно указать это свойство android: gravity = "center"

0 голосов
/ 02 февраля 2012

сделать что-то вроде этого

    <EditText
        android:id="@+id/searchedittext"
        android:layout_width="fill_parent"
        android:layout_height="50dip"
        android:hint="Search Events, Restaurants, Businesses"
        android:singleLine="true"
        android:textSize="15dip" />

    <Button
        android:id="@+id/searchbtn"
        android:layout_width="40dip"
        android:layout_height="40dip"
        android:layout_marginLeft="-50dip"
        android:background="@drawable/ic_menu_search" />
    <Button
        android:id="@+id/searchbtn2"
        android:layout_width="40dip"
        android:layout_height="40dip"
        android:layout_marginLeft="-30dip"
        android:background="@drawable/ic_menu_search" />
</LinearLayout>
...