android-fragments 如何在片段(Fragment to Activity)中添加“UP”后退按钮

n1bvdmb6  于 2022-11-14  发布在  Android
关注(0)|答案(6)|浏览(188)

我想使用工具栏上的“后退”图标,使用“后退”按钮从片段转到Activity。

片段是我的导航抽屉项,活动是我的MainActivity。
我该怎么做呢?

rbl8hiat

rbl8hiat1#

您可以使用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();
        }
    });
edqdpe6u

edqdpe6u2#

在您的片段onCreateView中调用此方法

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

yyyllmsg3#

试试这个对我有用的方法:
1.在XML中:

<android.support.v7.widget.Toolbar
 android:id="@+id/profileToolbar"
 android:layout_width="match_parent"
 android:layout_height="wrap_content">

1.在drawable文件夹中创建一个后退箭头图标。将其命名为“ic_back_button”。不确定如何创建:-
只需右键单击drawable〉new〉ImageAsset〉Clip Art〉Search back〉select〉OK〉Finish(不要忘记更改名称)。
1.然后在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();
    }
    });
6yt4nkrj

6yt4nkrj4#

如果您想从片段返回到以前的位置,它可能会有所帮助。
使用navController将其放入类中。

@Override
public boolean onSupportNavigateUp() {
    navController.navigateUp();
    return super.onSupportNavigateUp();
}

不要忘记实现相关依赖项,如导航和导航UI。

eivnm1vs

eivnm1vs5#

将此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>
ef1yzkbh

ef1yzkbh6#

你可以很容易地做到这一点,如果你正在使用一个自定义后退按钮,放置在您的自定义顶部应用程序栏,在按钮的onClick()函数,你可以调用.. getActivity().onBackPressed();它会工作一样,如果你已经点击了Android导航的后退按钮...

相关问题