2つ以上のボタンがユーザーに表示されるインターフェースを作成しようとしています。ボタンをクリックすると、いくつかのレイアウトがユーザーに表示されます。私はこの目的のためにSlidingDrawerを使用しています。
まあ、私はlayout_width&layout_heightプロパティによって混乱しています。
以下のようなプロパティを設定すると、「ハンドル1」のみが画面に表示されます。
Android:layout_width="fill_parent" Android:layout_height="wrap_content"
正直言って、私はこれらの両方の特性について十分な知識を持っていません。 誰かがそれらについての彼の知識を共有できますか?
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical" Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<SlidingDrawer Android:id="@+id/slidingDrawer1"
Android:layout_width="fill_parent" Android:layout_height="wrap_content"
Android:handle="@+id/handle1"
Android:content="@+id/content1">
<Button Android:text="Handle 1" Android:layout_height="wrap_content"
Android:layout_width="fill_parent" Android:id="@+id/handle1"></Button>
<LinearLayout Android:id="@+id/content1"
Android:layout_width="fill_parent" Android:layout_height="wrap_content"
Android:orientation="vertical" Android:gravity="center"
Android:background="#FF444444">
<Button Android:text="Handle 1 Item 1" Android:layout_height="wrap_content"
Android:layout_width="wrap_content" Android:id="@+id/item1"></Button>
</LinearLayout>
</SlidingDrawer>
<SlidingDrawer Android:id="@+id/slidingDrawer2"
Android:layout_width="fill_parent" Android:layout_height="wrap_content"
Android:handle="@+id/handle2"
Android:content="@+id/content2">
<Button Android:text="Handle 2" Android:layout_height="wrap_content"
Android:layout_width="fill_parent" Android:id="@+id/handle2"></Button>
<LinearLayout Android:id="@+id/content2"
Android:layout_width="fill_parent" Android:layout_height="wrap_content"
Android:orientation="vertical" Android:gravity="center"
Android:background="#FF444444">
<Button Android:text="Handle 2 Item 1" Android:layout_height="wrap_content"
Android:layout_width="wrap_content" Android:id="@+id/item2"></Button>
</LinearLayout>
</SlidingDrawer>
</LinearLayout>
layout_width
およびlayout_height
ビューのプロパティは、その親コンテナによって使用されることを目的としています。一部のコンテナは、これらの一方または両方を無視します。ほとんどがそれらを尊重します。値がどのように使用されるかを理解するには、コンテナー(この場合はSlidingDrawer)のドキュメントを参照する必要があります。
Main.xml全体を表示していないため、何が問題になっているのかを正確に判断するのは困難です。何が悪いのかという画像を投稿した場合にも役立ちます。
[〜#〜]編集[〜#〜]
完全なレイアウトを見た後、ここでの基本的な問題は、LinearLayoutを使用してSlidingDrawersを格納していることだと思います。 SlidingDrawerのドキュメント に注意してください。これらは、FrameLayoutまたはRelativeLayout(実際には、複数のビューを互いに重ねることができるコンテナ)のいずれかにある必要があります。
もう1つの可能性は、2番目のSlidingDrawerが最初のSlidingDrawerの真下に配置されていることです。 2番目のボタンのサイズを変更して(テキストを長くするなど)、ボタン1のいずれかの側に突き出ているかどうかを確認します。
fill_parent = match_parentであり、「親」コンテナの幅または高さ(指定されているプロパティ)を取得することを意味します
wrap_contentは、高さまたは幅が「子」の高さまたは幅をとることを意味します
通常、match_parentまたはwrap_contentを使用する代わりに、重みを使用する必要があります。
ウェイトを使用する場合は、幅を0dpに設定します。
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/main"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical" >
<LinearLayout
Android:id="@+id/lowerLayout"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:weightSum="1.0" >
<LinearLayout
Android:id="@+id/headerLayout"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:layout_weight=".7" >
<Button
Android:id="@+id/previousMonthButton"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Previous" />
<TextView
Android:id="@+id/monthName"
Android:layout_width="0dip"
Android:layout_height="wrap_content"
Android:text="Large Text"
Android:layout_weight="1"
Android:textAppearance="?android:attr/textAppearanceLarge" Android:gravity="center_horizontal" />
<Button
Android:id="@+id/nextMonthButton"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Next" />
</LinearLayout>
<LinearLayout
Android:id="@+id/lowerLayout3"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:layout_weight=".3" >
<Button
Android:id="@+id/addEvent"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
<LinearLayout
Android:id="@+id/lowerLayout2"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:weightSum="1.0" >
<LinearLayout
Android:id="@+id/monthView"
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:orientation="vertical"
Android:layout_weight=".7" >
</LinearLayout>
<ListView
Android:id="@+id/listView1"
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:layout_weight=".3" >
</ListView>
</LinearLayout>
</LinearLayout>
スライディングドロワーを2つ追加しようとしていると思います。
SlidingDrawerのサイズは、スライドアウトされたときにコンテンツが占めるスペースの量を定義するため、SlidingDrawerは通常、両方のディメンションにmatch_parentを使用する必要があります。この場合、一方が他方にオーバーラップするため、ハンドラー2は表示されません。
最初のSlidingDrawerの可視性を「なくなった」ように設定すると、他の1つを見ることができます。
更新
こんにちは 、
このコードを試してみてください。
<?xml version="1.0" encoding="utf-8"?>
<SlidingDrawer
Android:id="@+id/slidingDrawer1"
Android:layout_width="fill_parent"
Android:layout_height="0dip"
Android:layout_weight="1"
Android:content="@+id/content1"
Android:handle="@+id/handle1" >
<Button
Android:id="@+id/handle1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Handle 1" >
</Button>
<LinearLayout
Android:id="@+id/content1"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="#FF444444"
Android:gravity="center"
Android:orientation="vertical" >
<Button
Android:id="@+id/item1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Handle 1 Item 1" >
</Button>
</LinearLayout>
</SlidingDrawer>