0

実行時にインスタンス化する必要があるいくつかの小さなビューを持つ Android プロジェクトがあります。これらの関連するすべてのビューを 1 つの xml ファイルに格納する方法を見つけることができませんでした。現在、これらの xml ファイルが多数存在することになります。それらをすべて単一のファイルに入れる方法があるかどうか疑問に思っていましたが、親のViewGroupに属していません。

android のレイアウト フォルダーは、サブフォルダーを作成する方法がないため、すべてが同じ場所に積み上げられているだけです。

誰かがこれらのものを整理するより良い方法を教えてくれることを願っています.

4

2 に答える 2

0

いくつかのこと:

はい、レイアウトフォルダーは面倒です。厳密な命名規則を使用して耐えられるようにし、Eclipse ではショートカットを使用して、ctrl + shift + r探しているレイアウトをすばやく見つけます。アクティビティにちなんでレイアウトに名前を付けてみてください: activity1_menu_overlayand activity1_main. 上記のショートカットを使用して入力Activity1するだけで、関連するレイアウトのみが表示されます。

それでもうまくいかない場合は、すべてのビューをラップして、またはLinearLayouts使用して適切なビューを表示/非表示にすることができます。 view.setVisibility(View.Gone);view.setVisibility(View.Visible);

説明が難しいので、2 番目の例を次に示します。

1 つの XML ファイル:

<LinearLayout>
    <LinearLayout ... android:visibility="visible">
        <copy/paste of view 1>
    </Linearlayout>
    <Linearlayout ... android:visibility="gone">
        <copy/paste of view 2>
    </Linearlayout>
    <Linearlayout ... android:visibility="gone">
        <copy/paste of view 3>
    </Linearlayout>
    <Linearlayout ... android:visibility="gone">
        <copy/paste of view etc.>
    </Linearlayout>
</Linearlayout>

このアプローチでは、アクティビティ内の各「子」ビューへの参照を定義する必要があることに注意してください。これにより、適切LinearLayoutに呼び出すことができますsetVisiblity

このアプローチはアニメーションに適しています。私は、1 つの xml ファイルで 2 つまたは 3 つの可能なビューに対してのみ使用します。

于 2012-03-22T03:39:27.833 に答える
0

私が正しく理解している場合は、複数のビューを 1 つの画面にマージするか、1 つの xml ファイルにマージする必要があります。他のxmlを1つに含めることができます。

この記事では、XML レイアウトでタグを使用して、レイアウト コードを再利用および共有する方法を示しました。この記事では、タグと、タグがタグを補完する方法について説明します。

http://developer.android.com/resources/articles/layout-tricks-merge.html

また、このビデオも役立つかもしれません (約 19 分)。現在のレイアウトを抽出し、それを他のレイアウトに含める方法を示します。

于 2012-03-22T03:30:19.650 に答える