2

Androidプログラミングでは、レイアウトの高さを変更して、すべての要素がまだ表示されるようにする方法を教えてください。

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

    <TextView
        android:id="@+id/textview_username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+string/email" />

    <EditText
        android:id="@+id/textinput_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textEmailAddress" />

    <TextView
        android:id="@+id/textview_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+string/password" />

    <EditText
        android:id="@+id/textinput_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPassword" />

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
        <Button
            android:id="@+id/button_exit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@+string/cancel" />

        <Button
            android:id="@+id/button_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@+string/ok" />
    </LinearLayout>

</LinearLayout>

これは私のコードです。これを実行すると、空白がたくさん表示されます。このレイアウトは、ダイアログ ボックスにのみ表示されます。

ありがとう。

編集:

高さを最小化したのですが、キャンセルボタンのすぐ横にOKボタンが表示されてしまいました。右揃えにしたい。

4

3 に答える 3

1

以下のコードを使用する場合

 android:layout_height="wrap_content"

実際に、地球上のすべての Android フォンでレイアウトが希望どおりに見えるようにします。

間隔について、Android は android:layout_margin と android:padding の 2 つの属性を定義します。android:layout_margin 属性はコンテナの間隔を定義し、android:padding はビューの間隔を定義します。

android:padding - コントロールの 4 辺すべてのコンテンツの間隔を定義します。各辺のパディングを個別に定義するには、android:paddingLeft、android:paddingRight、android:paddingTop、および android:paddingBottom を使用します。

android:paddingTop - コンテンツとコントロールの上部との間の間隔を定義します

android:paddingBottom - コンテンツとコントロールの下部との間の間隔を定義します。

android:paddingLeft - コンテンツとコントロールの左側との間の間隔を定義します。

android:paddingRight - コンテンツとコントロールの右側との間の間隔を定義します。

*編集されたコードの名前 " mainactivity をアクティビティ名に変更してください " *

<?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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

       <TextView
    android:id="@+id/textview_username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@+string/email" />

<EditText
    android:id="@+id/textinput_username"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textEmailAddress" />

<TextView
    android:id="@+id/textview_password"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@+string/password" />

<EditText
    android:id="@+id/textinput_password"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textPassword" />       

    <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
    <Button
        android:id="@+id/button_exit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+string/cancel" />

    <Button
        android:id="@+id/button_login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+string/ok" />
</LinearLayout>


</RelativeLayout>

あなたの答えは以下の完全に機能するコードです

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

    <TextView
        android:id="@+id/textview_username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+string/email" />

    <EditText
        android:id="@+id/textinput_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textEmailAddress" />

    <TextView
        android:id="@+id/textview_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+string/password" />

    <EditText
        android:id="@+id/textinput_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPassword" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="28.05" >

        <Button
            android:id="@+id/button_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:gravity="center_vertical"
            android:text="@+string/ok" />

        <Button
            android:id="@+id/button_exit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="@+string/cancel" />

    </RelativeLayout>

</LinearLayout>
于 2013-07-07T23:08:50.187 に答える
0

キャンセル ボタンと OK ボタンの両方に android:layout_weight="1" を追加して、水平方向の LinearLayout で横に並べて表示されるようにします。

代わりに RelativeLayout を使用することもできます。これにより、ボタンのレイアウト方法をより適切に制御できるようになり、右、左、どちらが右かなどを指定できます。

于 2013-07-07T23:32:51.693 に答える
-1

次のように、linearlayout を使用してマージンを削除します。

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

    <TextView
        android:id="@+id/textview_username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+string/email" />

    <EditText
        android:id="@+id/textinput_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textEmailAddress" />

    <TextView
        android:id="@+id/textview_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+string/password" />

    <EditText
        android:id="@+id/textinput_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPassword" />

    <Button
        android:id="@+id/button_exit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+string/cancel" />

    <Button
        android:id="@+id/button_login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+string/ok" />

</LinearLayout>
于 2013-07-07T23:07:25.353 に答える