0

私のデザインに関してあなたのアドバイスが必要です。あなたがより良いアイデアを持っている場合 (または私に同意する場合)、それは良いことです. どういうわけか「石器時代のプログラミングスタイル」のような気がしますが、見てみましょう。

基本的に、xml 相対レイアウトがあります。中央 (垂直方向および水平方向) にあります。ユーザー入力に応じて、「いずれか」の 3 つのボタンまたは 3 つのテキストを表示したいと考えています。だから私がしたことは次のとおりです:

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

    <RelativeLayout android:id="@+id/Buttons"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" >
        <Button1 .../>
        <Button2 .../>
        <Button3 .../>
    </RelativeLayout>

    <RelativeLayout android:id="@+id/Texts"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" >
       <TextView1 .../>
       <TextView2.../>
       <TextView3.../>
    </RelativeLayout>

</RelativeLayout>

コードへのユーザー入力に応じて、可視性を可視または不可視に設定しました

これでいいですか?そうでない場合、あなたは何を提案しますか?

4

3 に答える 3

3

必要なのはView.GONEView.VISIBLEです。

View.GONE を使用すると、レイアウトはスペースを占有しません (まるで存在しないかのように)。View.INVISIBLE を使用すると、ユーザーにはビュー (ボタン、またはこの場合のテキスト) は表示されませんが、画面には表示されたままなので、他のビュー (ボタン、またはテキスト) を上に移動するか、下に移動します (ビューは真ん中にありません)。

ヒント: 「android:layout_centerHorizo​​ntal」と「android:layout_centerVertical」の代わりに「android:layout_centerInParent」を使用できます。

于 2012-04-10T01:38:04.837 に答える
2

私の意見では、あなたがしたことは原始的かもしれませんが、それは単純です。それは良いことです:)しかし、それでもいくつかのオプションが必要で、人生を複雑にする場合は、

  1. 各ブロックを個別の xml に入れて、 を使用しますinclude
  2. 2 つのビューを作成し、ViewFlipper を使用して、ユーザーの要件に基づいてそれらを反転します。

しかし、あなたが持っている単純な要件については、あなたはうまくやっていると思います.

include オプションは次のように機能します。

layout_1.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/Buttons"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" >
        <Button1 .../>
        <Button2 .../>
        <Button3 .../>
</RelativeLayout>

layout_2.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/Texts"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" >
       <TextView1 .../>
       <TextView2.../>
       <TextView3.../>
</RelativeLayout>

あなたの main_layout.xml

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

    <include layout="@layout/layout_1" />
    <include layout="@layout/layout_2" />   

</RelativeLayout>

は、再利用可能なレイアウトを作成するのincludeに役立ち、特に UI が複雑な場合に、xml ファイルが不自然に大きくなるのを防ぐのにも役立ちます。

于 2012-04-10T01:37:04.010 に答える
0

最初のオプションは次のとおりです。

Linearlayout に 3 つのボタンまたはテキストビューをすべて追加し、 を使用して親の中央に配置できますandroid:layout_centerInParent

2 番目のオプションは次のとおりです。

3 つのボタンすべてから中央のボタンを中央に配置し、中央のボタンに合わせて他の 2 つのボタンを調整できます。同様に、テキストビューについてもこれを繰り返す必要があります。このオプションでは、3 つのビューすべてをView.GONE明示的に可視化する必要があります。

于 2012-04-10T01:53:45.323 に答える