Fixed
Status Update
Comments
rv...@google.com <rv...@google.com>
p....@gmail.com <p....@gmail.com> #2
Hi. Thanks for reporting this. Fixed in alpha-04
rv...@google.com <rv...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit e782987543a9f8ccd485e970ddc74564b24378db
Author: Vighnesh Raut <vighnesh.raut13@gmail.com>
Date: Mon Jan 02 15:27:40 2023
fix: tab row crashes when only 1 tab is added
Bug: b/264018028
Test: Added unit test
Change-Id: I6381dbac304fc1d69d3708c6655f8b595668e93f
M tv/tv-material/src/androidTest/java/androidx/tv/material/TabRowTest.kt
M tv/tv-material/src/main/java/androidx/tv/material/TabRow.kt
https://android-review.googlesource.com/2373449
Branch: androidx-main
commit e782987543a9f8ccd485e970ddc74564b24378db
Author: Vighnesh Raut <vighnesh.raut13@gmail.com>
Date: Mon Jan 02 15:27:40 2023
fix: tab row crashes when only 1 tab is added
Bug:
Test: Added unit test
Change-Id: I6381dbac304fc1d69d3708c6655f8b595668e93f
M tv/tv-material/src/androidTest/java/androidx/tv/material/TabRowTest.kt
M tv/tv-material/src/main/java/androidx/tv/material/TabRow.kt
p....@gmail.com <p....@gmail.com> #4
deleted
rv...@google.com <rv...@google.com> #5
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.tv:tv-material:1.0.0-alpha04
p....@gmail.com <p....@gmail.com> #6
PFA. I want behaviour like this. If focus is not last visible item of row then it should not get scrolled automatically.
rv...@google.com <rv...@google.com> #7
Okay. And what if there are more items to the right and the user clicks DPAD_RIGHT in the above image? Where do you expect the focus to go? And how should it look like?
p....@gmail.com <p....@gmail.com> #8
In that case I will scroll row by some offset but I want to control it same as Google Live.
rv...@google.com <rv...@google.com> #9
This looks like a custom implementation of PositionFocusedItemInLazyLayout. You can use that as a starter and update the math logic in the function based on your needs.
p....@gmail.com <p....@gmail.com> #10
yes, I am sending flag and handling it and it's working fine. Thanks for you quick help.
[Deleted User] <[Deleted User]> #11
Is there a way to have this done on the focused item's parent composable? I'm running into an issue with a Carousel that has focusable buttons. It is scrolling to the first focused button. This worked with the pivot offsets in the TV API but not this new one.
rv...@google.com <rv...@google.com> #12
It is not clear what the issue is. Can you please file a new issue with a minimal reproducible snippet of code along with the library versions?
[Deleted User] <[Deleted User]> #13
Will do, I noticed it only happens on the initial composition. If I scroll the issue fixes itself. I'll follow up when I have more details.
Description
Starting from version
1.0.0-alpha11
ofandroidx.tv.foundation
, tv lazy layouts are deprecated and will be removed in the future releases. This includes the following components and their respective tv-foundation dependencies.TvLazyRow
TvLazyColumn
TvLazyHorizontalGrid
TvLazyVerticalGrid
This deprecation follows a new feature addition in the compose foundation's lazy layouts. The tv lazy layouts offered a Feature CL
pivotOffsets
functionality that would allow to position the current focused item at a specific position. This can now be achieved by providing a custom BringIntoViewSpec to the compose foundation's lazy layouts.The following part of the ticket will talk about migration from tv lazy layouts to compose foundation layouts.
Prerequisites
1.7.0-beta02
or above.androidx.compose.foundation
androidx.compose.runtime
androidx.tv.foundation
dependency from your package if you were only using the tv lazy layouts.Option 1. If you are using tv lazy layouts WITHOUT customizing the
pivotOffsets
.Changes
androidx.compose.foundation
Tv
prefix from all theTvLazy*
components.Before: Using
androidx.tv.foundation
After: Using
androidx.compose.foundation
Option 2. If you are customizing the
pivotOffsets
in the tv lazy layouts.Changes
androidx.compose.foundation
Tv
prefix from all theTvLazy*
components.Custom BringIntoView spec:
Now that we have the custom BringIntoView spec, usage it pretty straightforward. Wrap the entire app with
PositionFocusedItemInLazyLayout
and all your inner lazy layouts will respect that.You can even override it for specific layouts like shown below: