标签: leanback

Android TV应用程序 - 无法使用远程选择列表项

目前我正在开发Android TV应用.

我使用过Android Lean支持库.

我添加了一个ListView,但我无法从listView中选择任何带有真实设备遥控器的项目.但是,我可以借助鼠标在我的Android虚拟设备上选择listView项.

这是我的listView示例代码:

customViewOrders = new CustomViewOrders(getActivity().getBaseContext(), arrayViewOrders);
lstViewOrder.setAdapter(customViewOrders);
Run Code Online (Sandbox Code Playgroud)

arrayViewOrders是我的ArrayList,它包含从JSON webservice收到的数据.

这是我的JSON响应:

{
   "order":[
      {
         "0":"13829CF",
         "gen_id":"13829CF",
         "1":"17534CF",
         "2":"Complete",
         "ord_status":"Complete",
         "3":"Online Preview",
         "sta_name":"Online Preview",
         "4":"2015-10-27 00:00:00",
         "image":"cinereel",
         "placed_from":"web"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

我还在AndroidManifest.xml文件中添加了以下功能:

<uses-feature
    android:name="android.hardware.touchscreen"
    android:required="false" />
<uses-feature
    android:name="android.hardware.faketouch"
    android:required="true" />
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:如何在远程帮助下在真实设备中选择任何东西(即列表项,按钮)

android android-virtual-device android-tv leanback

5
推荐指数
1
解决办法
2220
查看次数

Android TV Custom Presenter错误:请勿在布局或滚动中设置LayoutFrozen

我试图用一个自定义视图控件创建一个自定义演示者,将视频播放到表面视图中,并在第一次绑定后收到此错误消息。有什么问题?我没有设置任何布尔值来冻结裁员或类似的信息。

整个项目可以在这里找到

    java.lang.IllegalStateException: Do not setLayoutFrozen in layout or scroll
at android.support.v7.widget.RecyclerView.assertNotInLayoutOrScroll(RecyclerView.java:2164)
at android.support.v7.widget.RecyclerView.setLayoutFrozen(RecyclerView.java:1750)
at android.support.v17.leanback.app.BaseRowFragment.onTransitionStart(BaseRowFragment.java:199)
at android.support.v17.leanback.app.RowsFragment.onExpandTransitionStart(RowsFragment.java:483)
at android.support.v17.leanback.app.BrowseFragment.startHeadersTransitionInternal(BrowseFragment.java:435)
at android.support.v17.leanback.app.BrowseFragment.access$200(BrowseFragment.java:77)
at android.support.v17.leanback.app.BrowseFragment$3.onRequestChildFocus(BrowseFragment.java:546)
at android.support.v17.leanback.widget.BrowseFrameLayout.requestChildFocus(BrowseFrameLayout.java:124)
at android.view.ViewGroup.requestChildFocus(ViewGroup.java:740)
at android.view.ViewGroup.requestChildFocus(ViewGroup.java:740)
at android.view.ViewGroup.requestChildFocus(ViewGroup.java:740)
at android.support.v7.widget.RecyclerView.requestChildFocus(RecyclerView.java:2081)
at android.view.ViewGroup.requestChildFocus(ViewGroup.java:740)
at android.view.ViewGroup.requestChildFocus(ViewGroup.java:740)
at android.view.ViewGroup.requestChildFocus(ViewGroup.java:740)
at android.support.v7.widget.RecyclerView.requestChildFocus(RecyclerView.java:2081)
at android.view.ViewGroup.addViewInner(ViewGroup.java:4341)
at android.view.ViewGroup.addView(ViewGroup.java:4145)
at android.view.ViewGroup.addView(ViewGroup.java:4086)
at android.support.v7.widget.RecyclerView$5.addView(RecyclerView.java:591)
at android.support.v7.widget.ChildHelper.addView(ChildHelper.java:107)
at android.support.v7.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:6708)
at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:6666)
at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:6654)
at android.support.v17.leanback.widget.GridLayoutManager$2.cre    ateItem(GridLayoutManager.java:1473)
at android.support.v17.leanback.widget.SingleRow.appendVisibleItems(SingleRow.java:111)
at android.support.v17.leanback.widget.Grid.appendOneColumnVisibleItems(Grid.java:364)
at android.support.v17.leanback.widget.GridLayoutManager.appendOneColumnVisibleItems(GridLayoutManager.java:1696)
at android.support.v17.leanback.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:1881)
at android.support.v7.widget.RecyclerView.disp    atchLayoutStep2(RecyclerView.java:3026)
at android.support.v7.widget.RecyclerView.disp    atchLayout(RecyclerView.java:2903)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3277)
at …
Run Code Online (Sandbox Code Playgroud)

android television leanback android-recyclerview

5
推荐指数
1
解决办法
603
查看次数

Android RecyclerView项目在滚动时扩展焦点

我正在尝试为我的Android TV应用程序实现效果,以便在关注时扩展视图.

我通过动画ViewHolder的主视图来做到这一点LayoutParams.

它工作正常,但问题是当我滚动到视图的末尾(水平线性映射)时,视图扩展不与视图的末尾对齐,因此它会产生一个非常奇怪的效果.

RecyclerView奇怪的滚动

我的代码:

holder.m_view.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View view, boolean b) {
                if (b)
                {
                    ResizeAnimation anim = new ResizeAnimation(view, 600, view.getWidth());
                    anim.setDuration(200);
                    anim.setInterpolator(new AccelerateDecelerateInterpolator());
                    view.startAnimation(anim);
                }
                else
                {
                    ResizeAnimation anim = new ResizeAnimation(view, 400, view.getWidth());
                    anim.setDuration(200);
                    anim.setInterpolator(new AccelerateDecelerateInterpolator());
                    view.startAnimation(anim);
                }

            }
        });
Run Code Online (Sandbox Code Playgroud)

虽然ResizeAnimation是我自己的班级改变了视图LayoutParams.

如何解决奇怪的滚动问题?

谢谢.

android android-animation android-tv leanback android-recyclerview

5
推荐指数
1
解决办法
487
查看次数

Leanback的AppCompat主题

我打开了旧的Android TV应用程序项目,并尝试更新依赖项。然后,我将appcompat库更新为27.1.1。我打开了leanback片段,Android Studio警告我BrowseFragment已弃用,应BaseSupportFragment改为使用。其他回扫片段的情况相同。然后,我将所有片段更改为AppCompat版本(除非LeanbackSettingsFragment没有提供AppCompat版本),然后将我的Activity扩展更改为AppCompatActivity

进行这些更改之后,我构建了该应用程序,但是当我启动该应用程序时,我在logcat中看到此错误:

无法启动活动ComponentInfo {net.swiftzer.trainboard.dev/net.swiftzer.trainboard.main.MainActivity}:java.lang.IllegalStateException:此活动需要使用Theme.AppCompat主题(或后代)。

我用于该应用程序和活动的主题都在下Theme.Leanback。但是我检查了主题是否基于平台本机主题。

我应该坚持使用不推荐的leanback片段类,还是leanback库提供AppCompat主题?leanback库就像一个半熟的库。我看到leanback库去年提供了片段的AppCompat版本,但是没有示例项目正在使用它们。现在,他们将从扩展的片段类标记android.app.Fragment为已弃用,但它们没有提供正确的迁移方法。

android android-appcompat android-tv leanback

5
推荐指数
2
解决办法
922
查看次数

在项目选择中,在FireTV的RowSupportFragment中将背景颜色更改为黑色几次

我正在为我的电视应用程序使用RowsSupportFragment of lean-back库.它将片段的背景颜色更改为黑色,同时在FireTV中选择项目(几次颜色更改为黑色,因为我们将背景颜色设置为透明),而相同的代码在AndroidTV中正常工作

我建议如何解决这个问题.

在此输入图像描述

android android-tv amazon-fire-tv leanback

5
推荐指数
0
解决办法
98
查看次数

RecyclerView 项目专注于 Android TV

我正在开发Android TV一个应用程序,我有一个recycler view. 如何将焦点集中在想要的位置上?(我已经尝试过scrollToPositionsmoothScroller,但它不起作用)。提前致谢!

android android-tv leanback

5
推荐指数
1
解决办法
4606
查看次数

Android Leanback (android tv) 应用程序中的滚动条拇指可见性

我正在开发一个使用 Leanback lib 的 Android TV 项目。

我想要实现的目标是使 VerticalGridView ( androidx.leanback.widget.VerticalGridView) 中内置的垂直滚动条可见。

<androidx.leanback.widget.VerticalGridView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/container_list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clipToPadding="false"
    android:fadeScrollbars="false"
    android:scrollbarThumbVertical="@color/color_green"
    app:fastScrollVerticalThumbDrawable="@drawable/scrollbar_vertical_thumb"
    android:scrollbarSize="5dp"
    style="?attr/rowsVerticalGridStyle" />
Run Code Online (Sandbox Code Playgroud)

如图所示,我尝试设置滚动条大小、可绘制、缩略图样式以及所有其他可能的属性以使滚动条可见。

现在的悲剧是,当我调用verticalGridView.getVerticalScrollbarWidth();方法来检查宽度时,它返回了0。看来 Leanback lib 正在将 VerticalScrollbarWidth 设置为0我找不到的某个地方。

我还尝试查看其他 Leanback 应用程序,尽管视图是可滚动的,但没有应用程序显示滚动条拇指。

为什么??有什么方法可以向我的用户展示 Android TV 应用程序上的滚动条吗?

android scrollbar android-tv leanback

5
推荐指数
0
解决办法
685
查看次数

Android Gradle Manifest合并失败

我使用leanback库为Android TV开发.我的应用程序将min API声明为16,但leanback作为最小API为16.因此,文档说我在我的清单中声明了这一点:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          package="com.mypackage.package">

    <uses-sdk tools:overrideLibrary="android.support.v17.leanback" />
Run Code Online (Sandbox Code Playgroud)

但是我仍然有错误:

错误:(6,5)任务':app:processAdhocProdManifest'的执行失败.

清单合并失败:使用-SDK:16的minSdkVersion不能比库/thepathtotheapp/build/intermediates/exploded-aar/com.android.support/leanback-v17/22.2.0/AndroidManifest.xml建议宣布版本17小:使用tools:overrideLibrary ="android.support.v17.leanback"强制使用

在Manifest合并报告中我可以看到:

MERGED from io.fabric.sdk.android:fabric:1.0.2:7:5
    android:targetSdkVersion
        INJECTED from AndroidManifest.xml:0:0
        INJECTED from AndroidManifest.xml:0:0
    android:minSdkVersion
        INJECTED from AndroidManifest.xml:0:0
        INJECTED from AndroidManifest.xml:0:0
    tools:overrideLibrary
        ADDED from AndroidManifest.xml:21:15
    tools:ignore
        ADDED from com.mixpanel.android:mixpanel-android:4.5.4-RC1:14:9
application
ADDED from AndroidManifest.xml:23:5
Run Code Online (Sandbox Code Playgroud)

所以看起来它正在添加工具:overrideLibrary但它仍然失败.

谁知道如何解决这个问题?

android gradle android-library android-tv leanback

4
推荐指数
1
解决办法
3036
查看次数

如何在Android的VerticalGridFragment类中获取选定/聚焦的项目或其索引?

我需要获取 VerticalGridFragment 的选定/聚焦项目的索引。我在文档https://developer.android.com/reference/android/support/v17/leanback/app/VerticalGridFragment.html 中找到了设置所选项目的方法,即setSelectedPosition(int position)设置所选项目位置.

但是我在文档中找不到任何提供所选项目或其索引的方法。

有人可以帮我找到解决方法来获取 VerticalGridFragment 的选定项目吗?

android android-fragments leanback

4
推荐指数
2
解决办法
3052
查看次数

Android:PlaybackOverlayFragment无法正常工作

我正在使用Android TV应用程序,当我开始处理项目代码时,它会引发PlaybackOverlayFragment错误,并指出它无法解析符号PlaybackOverlayFragment

public class PlaybackOverlayFragment extends android.support.v17.leanback.app.PlaybackOverlayFragment
Run Code Online (Sandbox Code Playgroud)

目前在我的gradle文件中显示为:

compile 'com.android.support:leanback-v17:27.1.1'
Run Code Online (Sandbox Code Playgroud)

最初的项目是编译sdk版本26​​,我将其升级到27,是因为它引发错误吗?

android android-tv leanback

4
推荐指数
1
解决办法
811
查看次数