如何添加" UP"片段中的后退按钮(片段到活动)

时间:2017-07-27 08:59:45

标签: android android-fragments android-intent android-toolbar android-navigation-drawer

我想使用工具栏后退图标使用后退按钮从片段转到活动。

like this one

片段是我的导航抽屉项目&活动是我的主要活动。

我该怎么做?

5 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:2)

在片段onCreateView

中调用此方法
public void showBackButton() {
if (getActivity() instanceof ActionBarActivity) {
    ((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}

答案 2 :(得分:0)

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

答案 3 :(得分:0)

尝试一下对我有用:

  1. 在XML中:

    from __future__ import unicode_literals, print_function
    from prompt_toolkit import print_formatted_text
    from prompt_toolkit.formatted_text import HTML, ANSI
    from prompt_toolkit.formatted_text import FormattedText
    from prompt_toolkit.shortcuts import prompt
    from prompt_toolkit.validation import Validator
    from pathlib import Path
    
    
    class MainMenu:
    
        @staticmethod
        def __menu_title(text):
            print_formatted_text(HTML('\n<u><b>{}</b></u>').format(text))
    
        @staticmethod
        def __validator_is_valid_choice(text):
            return text == '1'
    
        @staticmethod
        def __validator_is_valid_folder_path(text):
            p = Path(text)
            return (p.exists() and p.is_dir())
    
    
        def __init__(self):
            self.validator_is_valid_choice = Validator.from_callable(
                self.__validator_is_valid_choice,
                error_message='Not a valid choice (has to be the number from 1).',
                move_cursor_to_end=False)
            self.validator_is_valid_folder_path = Validator.from_callable(
                self.__validator_is_valid_folder_path,
                error_message='Please specify a valid path to a folder.',
                move_cursor_to_end=False)
    
        def show_main_menu(self):
            tokens = FormattedText([('bg:ansigreen ansiwhite', 'Choose option: ')])
            self.__menu_title('Please select the file operation')
            print_formatted_text(ANSI('    \x1b[1m1. List Files'))
            result = prompt(tokens, refresh_interval=.5, validator=self.validator_is_valid_choice, validate_while_typing=True)
    
            if result == '1':
                print_formatted_text('')
                return 1, self.show_enter_path_menu()
            else:
                return 0
    
        def show_enter_path_menu(self):
            tokens = FormattedText([('bg:ansigreen ansiwhite', 'Enter the folder path: ')])
            result = prompt(tokens, refresh_interval=.5, validator=self.validator_is_valid_folder_path, validate_while_typing=True)
            return result
    
  2. 在可绘制文件夹中创建后退箭头图标。将其命名为“ ic_back_button”。 不确定如何:-
    只需右键单击drawable> new> ImageAsset> Clip Art>向后搜索>选择> OK> Finish(不要忘记更改名称)。

  3. 然后在onCreateView的片段中:

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

答案 4 :(得分:0)

如果您使用的是自定义后退按钮,该按钮位于按钮的onClick()功能中,该按钮位于自定义顶部应用栏上,则可以轻松实现你可以打电话。 getActivity().onBackPressed(); 它的工作原理与您单击android导航的后退按钮...