我在Android TV应用程序中使用Google Leanback小部件.它使用带有ListRows的RowsFragment.
我想要确定的是,是否有任何方法可以以编程方式滚动到其中一行中的特定对象.我已经挖掘了Leanback小部件的文档,但无法找到我正在寻找的东西.
我正在看Netflix应用程序和他们的滚动行为.我想做同样但不知道从哪里开始.我知道如何重写LayoutManager
了RecyclerView
(虽然我不保存,作为最后的手段).是否有更简单的方法来使用RowPresenter控制滚动速度?
We are trying to implement paging in Leanback VerticalGridSupportFragment with Architecture Components Paging Library. Leanback on it's own doesn't have any sort of out-of-box compatibility with Paging Library so we extended it's ObjectAdapter class and managed to implement append and clear operations quite easily but we are having a hard time trying to make modify operation work. During content modification operation, Paging Library's PagedList class computes the diff using AsyncPagedListDiffer which internally uses PagedStorageDiffHelper which is a package-private class and …
我有一个使用DetailsOverviewRow和FullWidthDetailsOverviewRowPresenter的详细信息片段.当页面首次加载时,操作按钮被选中.当我按下一次时,焦点离开按钮,没有其他任何事情发生.当我再次按下时,焦点移动到页面下方的ListRow.我试图弄清楚为什么在演示者,部分中调用的概述或正文不会集中.
概述/正文可读的两个屏幕截图之间是否应该有第二个"状态"?
可能值得注意.DetailsFragment未在活动xml中声明,我正在使用FragmentTransactions手动更改片段.此外,Fragment使用静态create方法实例化(下面的源代码).
提前致谢.
我正在尝试在选择卡时更改 Android Leanback Library中ImageCardView上infoArea的背景颜色.目前我尝试过的是改变OnItemViewSelectedListener中的背景.这会更改背景,但不会清除以前选择的项目.
private final class ItemViewSelectedListener implements OnItemViewSelectedListener {
@Override
public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
if (item instanceof Video) {
mBackgroundURI = ((Video) item).getBackgroundImageURI();
startBackgroundTimer();
((ImageCardView) itemViewHolder.view)
.setInfoAreaBackgroundColor(getResources().getColor(R.color.dark_blue_grey));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想实现这样的目标:
有任何想法吗?谢谢.
我开始使用Leanback支持我们的应用程序.根据UI要求,我需要添加与每个标题对应的多个列表行,这与Youtube App在Android TV上的行为完全相同.默认ListRowPresenter似乎只渲染一个列表行及其标题.是否有任何支持多个列表行的演示者?我正在考虑在每个项目中嵌入RowsFragment创建自定义演示者的行,如果我的方法错误,请纠正我.
如何在浏览片段中更改行标题的文本颜色和字体?文本不在菜单中,而是出现在行上方的文本.
我有一个dirPath
String变量,我希望能够将其更改为我选择的Android TV应用程序目录.我觉得Leanback框架的幻灯片式界面对于更微妙的动作来说有点麻烦,但我想坚持下去,因为我是Android和java的完全初学者.
因此,尝试坚持最佳实践,我希望用户能够更改dirPath
为指向他们选择的目录(dirPath
用作变量来扫描指定目录及其子目录中的音乐).在其他平台上,我会寻找操作系统的标准文件打开对话框,但我似乎无法在Leanback框架中找到一个.
我最好的猜测是使用GuidedStepFragments.为了选择一个目录,引入一个完整的选项页面(请参阅我之前关于leanback的类似幻灯片的UX的评论)感觉有点不合适,但看起来我没有多少选择?其次,我没有在GuidedActions中看到任何文件对话框小部件.也许我错过了它,否则谷歌热衷于指导文件选择在线而不是本地.
附加信息:
我正在尝试扫描所有子目录中的mp3和flac文件dirPath
,然后将路径,元数据等添加到SQLite
我已经使用虚拟数据的数据库中.我正在避免,mediastore
因为它有太多的限制,特别是它无法访问网络共享,这对我来说是理想的NAS访问.
一旦用户提名a dirPath
并开始扫描,我将把它传递给AsyncTask
在UI上的单独后台线程上运行.
总结一下:
我正在尝试使用AsyncTask
与UI不同的线程扫描Android TV设备的附加存储空间以查找音乐文件.扫描将被提供dirPath
String变量,并将检查此路径及其所有子目录的音乐文件,然后将其传递到元数据提取器,然后将相关数据存储在SQLite
数据库中.
我想我对实现扫描有一些了解(Google提供了示例)并且已成功实现将虚拟数据插入数据库.我似乎无法管理的是提供一种简单的方法让用户选择使用Android TV的Leanback库扫描的路径.显然这在Leanback中不可用.我有没有办法实现这不是一场噩梦?我正在寻找尽可能简单的目录选择对话框.如果它必须使用整个选项页面,ala GuidedStepFragments
,那就这样吧.
我正在尝试创建一个类似于Youtube应用程序的Android电视应用程序.我正在使用沙发库来做到这一点.现在问题出现了,当我试图显示单个项目的标题时,RowsFragment
即使RowsFragment
没有焦点.以下是将数据集加载到browseFragment中的代码
private void loadRowsCustom() {
adapter = new ArrayObjectAdapter();
int split = 3;
int rowsFragmentCount = videoList.size() / split + (videoList.size() % split != 0 ? 1 : 0);
for (int i = 0; i < rowsFragmentCount; i++) {
ListRowPresenter lrp = new ListRowPresenter(FocusHighlight.ZOOM_FACTOR_LARGE);
ArrayObjectAdapter rowsAdapter = new ArrayObjectAdapter(lrp);
String category = "Category";
for (int j = 0; j < split && (i * split + j) < videoList.size(); j++) {
Video[] videos = …
Run Code Online (Sandbox Code Playgroud)