0

以下は、「ここに電話番号を入力してください」というキャプション付きのテキスト ボックスを作成するための xml コードです。電話番号とボタンを取得する編集ボックスがあります。問題は、テキスト ボックスと編集ボックスが重なり合っていることです。この問題を解決する方法。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView android:id="@+id/textLabel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="Enter number to dial"
        />
    <EditText android:id="@+id/phoneNumber"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        />
     <Button android:id="@+id/callButton"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_alignParentBottom="true"
     android:text="Show Dialer"
     />


</RelativeLayout>
4

5 に答える 5

1

相互に並べたいアイテムがある場合は、TableLayout を使用することをお勧めします。私は他の人が好きな方法を持っていると確信していますが、これは私のものです。

<?xml version="1.0" encoding="utf-8"?>
     <TableLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="match_parent" 
        android:layout_width="match_parent"
        android:background="#000044">
        <TableRow> 
            <TextView 
                android:text="Name:"
                android:width ="120px"
                />
            <EditText 
                android:id="@+id/someUserName" 
                android:width="200px" />
        </TableRow> 
        <TableRow>
            <TextView 
                android:text="Phone:"
                />
            <EditText 
                android:id="@+id/somePhone"  
                />
        </TableRow>
       <TableRow>
            <TextView 
                android:text="Address:"
                />
            <EditText 
                android:id="@+id/someAddress"  
                />
        </TableRow>
        <TableRow>
            <Button 
                android:id="@+id/buttonToClick" 
                android:text="Go Do Something Cool" />
        </TableRow>
    </TableLayout>

3 つのアイテムすべてを 1 行に並べたい場合は、次のようにします。

<?xml version="1.0" encoding="utf-8"?>
 <TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent" 
    android:layout_width="match_parent"
    android:background="#000044">

   <TableRow>
        <TextView 
            android:text="Call Number"
            android:paddingRight="50px"
            />
        <EditText 
            android:id="@+id/someNumber" 
            android:width ="120px"
            android:paddingLeft="10px"
            />

        <Button
            android:id="@+id/buttonToClick"
            android:text="Call" />

    </TableRow>
</TableLayout>
于 2012-07-13T17:31:27.170 に答える
1

開発に Eclispe を使用している場合は、アイテムをドラッグして配置できるグラフィカル レイアウト オプションに切り替えるだけです [これにより、上記の回答のコードが XML に追加されます]。このビデオをチェックして、RelativeLayoutとその使用方法を理解してください。[ビデオ ソース: Google I/O 2012]

于 2012-07-13T17:17:27.043 に答える
0

RelativeLayoutのさまざまなLayoutParamについて詳しく知る必要があります。以下のコードはそれらのいくつかを使用しており、オーバーラップの問題も回避しています。

<TextView android:id="@+id/textLabel"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:text="Enter number to dial"
    />
<EditText android:id="@+id/phoneNumber"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/textLabel"
    android:layout_alignParentRight="true"
    android:layout_marginLeft="8dp"
    />
<Button android:id="@+id/callButton"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_below="@id/textLabel"
     android:layout_marginTop="8dp"
     android:text="Show Dialer"
     />
于 2012-07-13T17:02:37.507 に答える
0

RelativeLayout の代わりに LinearLayout を水平方向または垂直方向に使用します。LinearLayout は、コンテンツを Linear 形式で自動的に配置します。

于 2012-07-13T17:04:14.123 に答える
0

次のように EditText で android:layout_below="@+id/textLabel" プロパティを使用します。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textLabel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="Enter number to dial" />

    <EditText
        android:id="@+id/phoneNumber"
        android:layout_below="@+id/textLabel"  //  <--- MUST  Add  This
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="Now phoneNumber Will Appear"  //  <---  See  This
        android:layout_alignParentRight="true" />

    <Button
        android:id="@+id/callButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="Show Dialer" />

</RelativeLayout>
于 2012-07-13T17:36:08.317 に答える