如何在Android NavigationComponent中手动关闭片段

时间:2018-12-22 09:47:28

标签: java android android-fragments android-architecture-navigation

我已切换到NavigationComponent,但我不知道如何使用该组件手动关闭片段,在活动中,我们具有完成活动的finish()方法,我需要在NavigationComponent中执行类似的操作。

3 个答案:

答案 0 :(得分:3)

科特林

我以这种方式完成

import time
import concurrent
from concurrent.futures.thread import ThreadPoolExecutor

def func_foo_bar(j,executor):
    foo(j)
    bar(j,executor)

def foo(j):
    [print(f"FOO calling {j}{i}") for i in range(3)]

def bar(j, executor):
    future_slow = {executor.submit(slow_func, j,x): x for x in range(3)}
    for future in concurrent.futures.as_completed(future_slow):
        if not future.exception():
            r = future.result()
            # print(r)

def slow_func(j,i):
    time.sleep(2)
    print(f"BAR calling {j}{i}")

executor = ThreadPoolExecutor(max_workers=5)
[func_foo_bar(x, executor) for x in range(3)]

答案 1 :(得分:1)

您可以在Fragment类中使用以下行:

getActivity().getFragmentManager().popBackStack();

如果您正在活动中,则可以使用

getFragmentManager().popBackStack();

答案 2 :(得分:0)

如果您使用的是导航组件,则也可以简单地调用Navigator.popBackStack(),其中Navigator是您的导航器对象。

Here's NavController的文档