1

私はHorizontalScrollView、スクロールビューで3つのログインコントロール(ユーザー名とパスワードのテキストボックス)を表示するために上部にあるAndroid用のアプリケーションを設計しています。下の画像でわかるように、画面の幅全体を占めていないという1つの小さな欠陥を除いて、私が望むものをほぼ達成しました. 幅を にするにはどうすればよいfill_parentですか?

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:panel="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#CCC"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <org.miscwidgets.widget.Panel
        android:id="@+id/mytopPanel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        panel:animationDuration="1000"
        panel:closedHandle="@drawable/top_switcher_collapsed_background"
        panel:content="@+id/mypanelContent"
        panel:handle="@+id/mypanelHandle"
        panel:linearFlying="true"
        panel:openedHandle="@drawable/top_switcher_expanded_background"
        panel:position="top" >

        <Button
            android:id="@+id/mypanelHandle"
            android:layout_width="wrap_content"
            android:layout_height="33dip"
            android:layout_gravity="center_horizontal" />

        <HorizontalScrollView
            android:id="@+id/mypanelContent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <LinearLayout
                    android:id="@+id/linearLayout"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >

                    <EditText
                        android:id="@+id/editTextUserName"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="3dp"
                        android:layout_marginTop="6dp"
                        android:hint="@string/editUserName" >
                    </EditText>

                    <EditText
                        android:id="@+id/editTextPassword"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="3dp"
                        android:hint="@string/editUserPwd" >
                    </EditText>

                    <TextView
                        android:id="@+id/textView"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:background="#323299"
                        android:gravity="center"
                        android:padding="4dip"
                        android:text="@string/drpDwnTxt"
                        android:textColor="#eee"
                        android:textSize="16dip"
                        android:textStyle="bold" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/linearLayout1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_toRightOf="@+id/linearLayout"
                    android:orientation="vertical" >

                    <EditText
                        android:id="@+id/editTextUserName1"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="3dp"
                        android:layout_marginTop="6dp"
                        android:hint="@string/editUserName" >
                    </EditText>

                    <EditText
                        android:id="@+id/editTextPassword1"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="3dp"
                        android:hint="@string/editUserPwd" >
                    </EditText>

                    <TextView
                        android:id="@+id/textView1"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:background="#323299"
                        android:gravity="center"
                        android:padding="4dip"
                        android:text="@string/drpDwnTxt"
                        android:textColor="#eee"
                        android:textSize="16dip"
                        android:textStyle="bold" />
                </LinearLayout>
            </RelativeLayout>
        </HorizontalScrollView>
    </org.miscwidgets.widget.Panel>
</LinearLayout>
</FrameLayout>

ここに画像の説明を入力

4

2 に答える 2

0

親愛なる私もこの問題に直面しているので、このコードを使用します。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relLayoutLogin"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bkg_poi_ipad"
    android:orientation="vertical" >

    <RelativeLayout
        android:id="@+id/tabRowHeader"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/heder_poi_ipad" >

        <Button
            android:id="@+id/btnBack"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:background="@drawable/img_btn_back" />

        <TextView
            android:id="@+id/lblTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="@string/loginTitle"
            android:textColor="#000000"
            android:textSize="30dp"
            android:textStyle="bold" />
    </RelativeLayout>

    <LinearLayout
        android:id="@+id/linearLogin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/lblUsername"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/usernameTitle"
            android:textColor="#FFFFFF"
            android:textSize="20dp" />

        <EditText
            android:id="@+id/txtUsername"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:inputType="text" />

        <TextView
            android:id="@+id/lblPassword"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="@string/passwordTitle"
            android:textColor="#FFFFFF"
            android:textSize="20dp" />

        <EditText
            android:id="@+id/txtpassword"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:inputType="textPassword" />

        <Button
            android:id="@+id/btnLogin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:background="@drawable/btn_login_ipad" />
    </LinearLayout>

</RelativeLayout>

こんな感じです参照してください。 ここに画像の説明を入力してください

于 2012-09-22T05:27:05.650 に答える
0

これがあなたができることです。

XML の場合:

水平線形レイアウトを 1 つ定義します。

3 つの垂直線形レイアウトを定義します。

各垂直線形レイアウト内に、ユーザー名とパスワードの EditText のペアを配置します。[それらの幅属性が次のようになっていることを確認して"fill_parent"ください。つまり、各 editTexts は、それらが配置されている垂直線形レイアウトの幅を埋める必要があります]

これら 3 つの垂直線形レイアウトを水平線形レイアウト内に配置します。

Java の場合:

水平方向の線形レイアウト (他の 3 つのレイアウトを含む) を、ディスプレイの幅の 3 倍の幅にします。

Display display = getWindowManager().getDefaultDisplay();
        int width = display.getWidth();
        int height = display.getHeight();
        horizontalLayout = (LinearLayout) findViewById(R.id.yourHorizonatalLinearLayout);
        horizontalLayout.setLayoutParams(new LinearLayout.LayoutParams(
                (width * 3), height));

ここで、各垂直線形レイアウト (水平線形レイアウト内に配置され、ユーザー名とパスワードのフィールドのペアを含む) の幅をデバイス ディスプレイの幅と等しくします。

以下のコードは、垂直線形レイアウトの 1 つを対象としており、他の 2 つについてもこれを繰り返す必要があります。同様のコード スニペットで、id を変更するだけです。

firstEditLayout = (LinearLayout) findViewById(R.id.yourFirstVerticalLinearLayout);
        firstEditLayout.setGravity(Gravity.CENTER_VERTICAL);
        firstEditLayout.setLayoutParams(new LinearLayout.LayoutParams(
                (width), height));

PS : 私はあなたが理解するのに十分明確であったことを願っています.

于 2012-09-22T14:18:14.777 に答える