ページの下部に 5 つのボタンがあるアプリケーションを作成したいのですが、ユーザーが任意のボタンをクリックすると、ページは変更されますが、5 つのボタンはページの下部に残ります。今、私はこのプログラムを作成しますが、他のレイアウトを呼び出すため、他のクラスで setContentView() を呼び出すと、ボタンが削除されます。5ボタンのままにする方法はありますか?または、5layout で 5buttons を再度作成する必要がありますか?
ありがとう乾杯
最も簡単でシンプルな方法は、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 つのボタンをレイアウトに直接配置します。
レイアウトの再利用の詳細については、このリンクを参照してください。
私が収集できることから、あなたはボタンではなくタブを探していると思います。これを見てください。
ご回答ありがとうございます。開発者のリンクを読み、マージとインクルードのタグを 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>
何が間違っていますか?ありがとうございました