0

ページの下部に 5 つのボタンがあるアプリケーションを作成したいのですが、ユーザーが任意のボタンをクリックすると、ページは変更されますが、5 つのボタンはページの下部に残ります。今、私はこのプログラムを作成しますが、他のレイアウトを呼び出すため、他のクラスで setContentView() を呼び出すと、ボタンが削除されます。5ボタンのままにする方法はありますか?または、5layout で 5buttons を再度作成する必要がありますか?

ありがとう乾杯

4

3 に答える 3

1

最も簡単でシンプルな方法は、5 つのボタンを持つレイアウトを作成し、それをすべてのレイアウト ファイルに含めることです。

<include layout="@layout/titlebar"/>

または、フラグメントを使用して、変更のあるフラグメントのみを変更して、他のレイアウトを同じに保つ
編集
またはタグを使用<merge>タグは、あるレイアウトを別のレイアウトに含めるときに、ビュー階層内の冗長なビュー グループを排除するのに役立ちます
<merge />たとえば、メイン レイアウトが、2 つの連続したビューを複数のレイアウトで再利用できる垂直 LinearLayout である場合、2 つのビューを配置する再利用可能なレイアウトには、独自のルート ビューが必要です。ただし、再利用可能なレイアウトのルートとして別の LinearLayout を使用すると、垂直 LinearLayout 内に垂直 LinearLayout が作成されます。入れ子になった LinearLayout は、UI のパフォーマンスを低下させること以外には何の目的もありません。

このような冗長なビュー グループを含めないようにするために、代わりに要素を再利用可能なレイアウトのルート ビューとして使用できます。例えば:

<merge xmlns:android="http://schemas.android.com/apk/res/android">

    <Button
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:text="@string/add"/>

    <Button
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:text="@string/delete"/>

</merge>

このレイアウトを ( タグを使用して) 別のレイアウトに含めると、システムはその要素を無視し、タグの代わりに 2 つのボタンをレイアウトに直接配置します。

レイアウトの再利用の詳細については、このリンクを参照してください。

于 2012-10-31T12:36:34.793 に答える
0

私が収集できることから、あなたはボタンではなくタブを探していると思います。これを見てください。

于 2012-10-31T12:33:50.373 に答える
0

ご回答ありがとうございます。開発者のリンクを読み、マージとインクルードのタグを xml ファイルに追加しましたが、プログラムにエラーがあります。なんで?

MainActivity.xml

<?xml version="1.0" encoding="utf-8"?>
<include layout="@layout/location"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<WebView
    android:id="@+id/web_view"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1.0" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/background"
    android:gravity="bottom"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button_home"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableTop="@drawable/home_icon"
        android:text="@string/button_home"
        android:textColor="@color/text_home" />

    <Button
        android:id="@+id/button_product"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableTop="@drawable/product_icon"
        android:onClick="Product"
        android:text="@string/button_product"
        android:textColor="@color/text_product" />

    <Button
        android:id="@+id/button_places"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableTop="@drawable/places_icon"
        android:onClick="Places"
        android:text="@string/button_places"
        android:textColor="@color/text_places" />

    <Button
        android:id="@+id/button_rewards"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableTop="@drawable/rewards_icon"
        android:onClick="Rewards"
        android:text="@string/button_rewards"
        android:textColor="@color/text_rewards" />

    <Button
        android:id="@+id/button_more"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableTop="@drawable/more_icon"
        android:onClick="More"
        android:text="@string/button_more"
        android:textColor="@color/text_more" />
</LinearLayout>

</LinearLayout>

location.xml

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView>
<com.google.android.maps.MapView
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    android:apiKey="0cPRv243zM1_S3ydsNg8MJP9_6BfCp642jOhPvQ"/>
<LinearLayout
    android:id="@+id/zoom"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"/>

</LinearLayout>
</merge> 

何が間違っていますか?ありがとうございました

于 2012-11-01T04:08:31.010 に答える