Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit ef4bd54e5dec9e9e8e5e510baeabc4ff00ef77cd
Author: Sherry Hu <shuanghu@google.com>
Date: Thu Jun 17 11:53:51 2021
Add AbstractListDetailFragment
Bug: 191276636
Test: Will test in sample application and unit tests.
Relnote: Added new AbstractListDetailFragment
Change-Id: Iac4be7b764ced86cdbff3c696c2cbdf2741eb81c
M navigation/navigation-fragment/api/current.txt
M navigation/navigation-fragment/api/public_plus_experimental_current.txt
M navigation/navigation-fragment/api/restricted_current.txt
M navigation/navigation-fragment/build.gradle
A navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/AbstractListDetailFragment.kt
A navigation/navigation-fragment/src/main/res/layout/abstract_list_detail_fragment.xml
M settings.gradle
https://android-review.googlesource.com/1740053
Branch: androidx-main
commit ef4bd54e5dec9e9e8e5e510baeabc4ff00ef77cd
Author: Sherry Hu <shuanghu@google.com>
Date: Thu Jun 17 11:53:51 2021
Add AbstractListDetailFragment
Bug: 191276636
Test: Will test in sample application and unit tests.
Relnote: Added new AbstractListDetailFragment
Change-Id: Iac4be7b764ced86cdbff3c696c2cbdf2741eb81c
M navigation/navigation-fragment/api/current.txt
M navigation/navigation-fragment/api/public_plus_experimental_current.txt
M navigation/navigation-fragment/api/restricted_current.txt
M navigation/navigation-fragment/build.gradle
A navigation/navigation-fragment/src/main/java/androidx/navigation/fragment/AbstractListDetailFragment.kt
A navigation/navigation-fragment/src/main/res/layout/abstract_list_detail_fragment.xml
M settings.gradle
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit b151f42998cdae5c2d906e745185aaa9049b6e4b
Author: Sherry Hu <shuanghu@google.com>
Date: Thu Jun 17 20:30:18 2021
Add sample application for two-pane navigation.
Bug: 191276636
Test: run sample application.
Change-Id: I6d746f28ae2f076c86b79de5980b43b84b0ea366
M navigation/integration-tests/testapp/src/main/java/androidx/navigation/testapp/MainFragment.kt
A navigation/integration-tests/testapp/src/main/java/androidx/navigation/testapp/TwoPaneAdapter.kt
A navigation/integration-tests/testapp/src/main/java/androidx/navigation/testapp/TwoPaneFragment.kt
M navigation/integration-tests/testapp/src/main/res/layout/bottom_bar_menu.xml
A navigation/integration-tests/testapp/src/main/res/layout/list_pane.xml
A navigation/integration-tests/testapp/src/main/res/layout/list_pane_row_item.xml
A navigation/integration-tests/testapp/src/main/res/layout/two_pane_fragment.xml
M navigation/integration-tests/testapp/src/main/res/menu/menu_bottom_nav.xml
M navigation/integration-tests/testapp/src/main/res/navigation/nav_main.xml
A navigation/integration-tests/testapp/src/main/res/navigation/two_pane_navigation.xml
M navigation/integration-tests/testapp/src/main/res/values/donottranslate-strings.xml
https://android-review.googlesource.com/1740716
Branch: androidx-main
commit b151f42998cdae5c2d906e745185aaa9049b6e4b
Author: Sherry Hu <shuanghu@google.com>
Date: Thu Jun 17 20:30:18 2021
Add sample application for two-pane navigation.
Bug: 191276636
Test: run sample application.
Change-Id: I6d746f28ae2f076c86b79de5980b43b84b0ea366
M navigation/integration-tests/testapp/src/main/java/androidx/navigation/testapp/MainFragment.kt
A navigation/integration-tests/testapp/src/main/java/androidx/navigation/testapp/TwoPaneAdapter.kt
A navigation/integration-tests/testapp/src/main/java/androidx/navigation/testapp/TwoPaneFragment.kt
M navigation/integration-tests/testapp/src/main/res/layout/bottom_bar_menu.xml
A navigation/integration-tests/testapp/src/main/res/layout/list_pane.xml
A navigation/integration-tests/testapp/src/main/res/layout/list_pane_row_item.xml
A navigation/integration-tests/testapp/src/main/res/layout/two_pane_fragment.xml
M navigation/integration-tests/testapp/src/main/res/menu/menu_bottom_nav.xml
M navigation/integration-tests/testapp/src/main/res/navigation/nav_main.xml
A navigation/integration-tests/testapp/src/main/res/navigation/two_pane_navigation.xml
M navigation/integration-tests/testapp/src/main/res/values/donottranslate-strings.xml
il...@google.com <il...@google.com> #4
As part of Navigation 2.4.0-alpha04
, the navigation-fragment
artifact now offers an AbstractListDetailFragment
that implements a
- the left (start) list pane is provided by subclasses by overriding
onCreateListPaneView()
- the right (end) detail pane is implemented as a
NavHostFragment
, controllable by overridingonCreateDetailPaneNavHostFragment()
It automatically handles the system back button (i.e., going back from the detail pane to the list pane on phones).
ir...@gmail.com <ir...@gmail.com> #5
Hi,
I'm trying to implement the AbstractListDetailFragment. On a mobile device it works as expected, the detail pane is closed until I select one of the items of the list pane, and the onClickListener calls to slidingPaneLayout.open() and then the detail pane gets opened. But, when I run the app on a tablet, expecting both panels to be displayed at the same time since the screen is large enough for that to happen, I see that it works just as in the mobile device, it is necessary to call to slidingPaneLayout.open() in order to see the detail pane, and it is displayed in front of the list pane, while both panes should be displayed one besides the other.
Is this the intended behavior? if so, is there a way to indicate that both panes should be displayed when the space available is larger than the sum of the panes' width?
Thank you in advance.
I'm trying to implement the AbstractListDetailFragment. On a mobile device it works as expected, the detail pane is closed until I select one of the items of the list pane, and the onClickListener calls to slidingPaneLayout.open() and then the detail pane gets opened. But, when I run the app on a tablet, expecting both panels to be displayed at the same time since the screen is large enough for that to happen, I see that it works just as in the mobile device, it is necessary to call to slidingPaneLayout.open() in order to see the detail pane, and it is displayed in front of the list pane, while both panes should be displayed one besides the other.
Is this the intended behavior? if so, is there a way to indicate that both panes should be displayed when the space available is larger than the sum of the panes' width?
Thank you in advance.
ir...@gmail.com <ir...@gmail.com> #6
Hi again, I fixed, hehe. The problem was I was using
ListPaneBinding.inflate(inflater)
instead of
ListPaneBinding.inflate(inflater, container, false)
when inflating the list pane.
ListPaneBinding.inflate(inflater)
instead of
ListPaneBinding.inflate(inflater, container, false)
when inflating the list pane.
te...@gmail.com <te...@gmail.com> #7
Hello, is there a way to connect the toolbar app configuration of an outer navigation graph to the inner one of the AbstractListDetailFragment? When opening the details pane while in portrait mode you don't get a back arrow in the toolbar by default. Is there a way to get the toolbar to understand to add a back arrow just for the details pane in portrait mode or do I need to create a custom solution?
te...@gmail.com <te...@gmail.com> #8
Another thought - You define the two_pane_fragment.xml in your example (https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:navigation/integration-tests/testapp/src/main/res/layout/two_pane_fragment.xml ), yet, it seems to be unused. The TwoPaneFragment class in the example does not inflate it, nor does the AbstractListDetailFragment. Actually, AbstractListDetailFragment creates a FragmentContainerView itself in its onCreateView method. However, in the guide (https://developer.android.com/develop/ui/views/layout/twopane#navigation ) you claim that this XML is needed. How should I think about this?
Description
Component used: Navigation
Version used: 2.4.0-alpha03
The Create a two pane layout guide talks through the pattern of using a
SlidingPaneLayout
that has aNavHostFragment
as its detail pane where clicking on an item in your list pane wouldnavigate()
to a new destination in the detail pane.It would be nice if this pattern was directly supported in Navigation, removing the need to manually integrate with the system back button or write the boilerplate XML layout .