web-dev-qa-db-ja.com

フラグメントに「UP」戻るボタンを追加する方法(フラグメントからアクティビティ)

ツールバーの戻るアイコンを使用して戻るボタンを使用して、フラグメントからアクティビティに移動したい。

like this one

フラグメントは私のナビゲーションドロワーアイテムであり、アクティビティは私のMainActivityです。

どうすればいいのですか?

6
Kishan Nath

その戻るナビゲーションアイコンにはapp:navigationIcon="?attr/homeAsUpIndicator"を使用できます。

 <Android.support.v7.widget.Toolbar
            Android:id="@+id/toolbarId"
            Android:layout_width="match_parent"
            Android:layout_height="?attr/actionBarSize"
            app:navigationIcon="?attr/homeAsUpIndicator"/>

ナビゲーションの場合:

Toolbar toolbar = (ToolBar) getActivity().findViewById(R.id.toolbarId);

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getActivity().onBackPressed();
        }
    });
14
Satan Pandeya

これが私のために働いてみてください:

  1. xMLの場合:

    <Android.support.v7.widget.Toolbar
     Android:id="@+id/profileToolbar"
     Android:layout_width="match_parent"
     Android:layout_height="wrap_content">
    
  2. ドローアブルフォルダに戻る矢印アイコンを作成します。 'ic_back_button'という名前を付けます。方法がわからない:-
    ドローアブルを右クリック>新規> ImageAsset>クリップアート>検索して戻る>選択> OK>終了(名前を変更することを忘れないでください)。

  3. 次に、onCreateViewのフラグメント内:

        Toolbar toolbar = view.findViewById(R.id.profileToolbar);
        toolbar.setNavigationIcon(R.drawable.ic_back_button);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          getActivity().onBackPressed();
        }
        });
    
3

フラグメントonCreateViewでこのメソッドを呼び出します

public void showBackButton() {
if (getActivity() instanceof ActionBarActivity) {
    ((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
3
sasikumar

このxmlコードをフラグメントに追加して、試してください

<Android.support.v7.widget.Toolbar
        Android:id="@+id/toolbar"
        Android:layout_width="match_parent"
        Android:layout_height="?attr/actionBarSize"
        Android:background="#FFFFFF"
        Android:layout_gravity="center"
        Android:gravity="center_horizontal">

        <TextView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:text="Title Here"
            Android:typeface="serif"
            Android:layout_gravity="center"
            Android:id="@+id/toolbar_title"
            Android:textSize="20sp"
            Android:textColor="@Android:color/black"/>

        <ImageView
            Android:id="@+id/ivback_water"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignParentRight="true"
            Android:layout_centerVertical="true"
            Android:padding="15dp"
            Android:scaleType="fitCenter"
            Android:layout_gravity="left"
            Android:background="@drawable/ic_arrow_back_black_24dp" />


    </Android.support.v7.widget.Toolbar>
0
Sunil P