2017-01-17 4 views
-1

BottomNavigationViewをいくつかのアクティビティで使用できますが、そこに宣言することはできません。複数のアクティビティを表示する方法

私のmain_activity.xmlでmy Bottomナビゲーションビューを宣言し、MainActivityクラス内でクリックロジックを処理しますが、Bottomnavigationviewで3つのアクティビティ(Map、Friends、Chats)を切り替えたいので、3下のナビゲーションでは3つのアクティビティを表示しますが、パフォーマンスが非効率的なため、すべてのクリックイベントと1つのクラス内のビューの初期化、およびレイアウト (MainActivityクラスとmain_activity.xml)を処理します。

どうすればよいですか?またはこれを行うためのよりよい方法がありますか?

答えて

1

アクティビティの代わりにフラグメントを使用する必要があります。 MainActivityというアクティビティが1つしかありません.BottomNavigationViewとBottomNavigationViewの上にあるフラグメントを追加してください。 BottomNavigationViewをクリックすると、フラグメントが置き換えられます。 あなたのXMLがでframeLayoutにフラグメントを追加し、あなたの活動から

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<View 
    android:id="@+id/bottom_nav_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true"/> 

<FrameLayout 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentTop="true" 
    android:layout_above="@id/bottom_nav_view"></FrameLayout> 

、ようなものになるだろう。あなたのBottomNavigationViewは元のままです。 NavigationViewタブをクリックすると、このFrameLayoutのフラグメントを置き換えるだけです。

関連する問題