2012-03-22 17 views
0

私は実行時にインスタンス化する必要があるいくつかの小さなビューを持つアンドロイドプロジェクトを持っています。私はこれらの関連するビューすべてを単一のxmlファイルに保存する方法を見つけ出すことができず、今ではこれらのxmlファイルの多くが作成されます。私は、1つのファイルにすべてを持たせるが、親のViewGroupに属さない方法があるかどうか疑問に思っていた。複数のアンドロイドビューを同じ親に属さずに同じ.xmlファイルに保存できますか?

アンドロイドのレイアウトフォルダは、サブフォルダを作成する方法がないので、すべてが同じ場所に積まれているので、うまくいきません。

誰かが私にこれらのものを整理するためのよりよい方法を教えてくれることを願っています。

答えて

0

私が正しく理解していれば、いくつかのビューを1つの画面に表示したり、1つのxmlファイルにマージしたりすることができます。他のxmlを1つに含めることができます。

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

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

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

0

カップルのもの:

はい、レイアウトフォルダは痛いです。私はそれを耐え忍ぶために厳密な命名規則を使用し、ショートカットctrl + shift + rを使用して、私が探しているレイアウトをすばやく見つけることができます。あなたの活動の後にレイアウトの名前をつけてみてください:activity1_menu_overlayactivity1_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> 

は、あなたが適切setVisiblityを呼び出すことができますので、このアプローチは、各「子」への参照を定義するために、あなたの活動のLinearLayoutビューをあなたが必要となります覚えておいてください。

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

関連する問題