我开始使用新的android.support.v17.leanback库,但在样式方面遇到了一些麻烦ImageCardView。
我正在将图像更改ImageCardView为不同的形状,因此我想删除ListRow例如使用卡片时自动生成的背景和阴影。如果我留下阴影,我的卡片看起来很奇怪,因为阴影和背景显示得就像卡片是正方形的。
我尝试为所有元素设置不同的背景,但它不起作用。如果我设置正常的背景颜色(绿色、蓝色等),图像或信息区域的背景将会改变,但如果我设置透明背景,则包裹整个卡片的另一个背景将可见。
有什么想法如何解决这个问题吗?
我正在构建一个 Android TV 应用程序并想使用
LeanbackListPreferenceDialogFragment
Run Code Online (Sandbox Code Playgroud)
但是,工作室在我的导入字符串上显示“无法解析符号“首选项”:
import android.support.v17.preference.LeanbackListPreferenceDialogFragment;
Run Code Online (Sandbox Code Playgroud)
我在 build.gradle 中添加了 Leanback 库依赖项:
compile 'com.android.support:leanback-v17:25.0.0'
Run Code Online (Sandbox Code Playgroud)
API 参考链接:https : //developer.android.com/reference/android/support/v17/preference/LeanbackListPreferenceDialogFragment.html
任何提示和帮助表示赞赏。
尤金
环境:
睡觉后我的盒子几乎没用了。当我尝试在 YouTube 或 Netflix 上观看某些内容时,图像或声音经常卡住并发出奇怪的噪音。它太慢了,除非重新启动,否则我无法使用它,但只是几次。
有什么配置可以避免此问题或提高性能?
我正在使用 Flutter 开发 Android TV 应用程序。我能够运行该应用程序(现在是示例应用程序)。但是我无法使用 d pad 选择按钮选择任何内容。
我发现我必须使用这样的东西才能实现这一目标
快捷方式(
shortcuts: {
LogicalKeySet(LogicalKeyboardKey.select):
const Intent(ActivateAction.key)
},
child: MaterialApp())
Run Code Online (Sandbox Code Playgroud)
但它在代码中给了我一个错误。我究竟做错了什么?
任何帮助表示赞赏。谢谢你。
我能够更改 Android Studio 模拟器上的默认启动器,但无法在物理 Android TV 上执行相同的操作。
我就是这样做的:
<category android:name="android.intent.category.HOME" />,告诉系统我的应用程序也是一个启动器。adb shell pm uninstall -k --user 0 com.google.android.leanbacklauncher和卸载 Leanback 启动器adb shell pm uninstall -k --user 0 com.google.android.tvlauncher。这是仅适用于 Android TV 的额外步骤。在我的模拟器上,它按预期工作,按 HOME 键,重复单击 BACK 键并重置设备返回到我的应用程序。
但在实体电视上,按 HOME 键就可以了。重复单击“返回”键并重置设备会进入空白屏幕。
我的问题是,是否有一种官方方法可以像 Android Mobile 一样更改 Android TV 上的默认启动器?
谢谢!
我为流媒体视频网站创建了应用程序,并在 Android 手机和 Android 电视上提供应用程序。代码会有所不同,我使用不同的代码来针对不同的平台,但它们\xe2\x80\x99将是具有相同功能和相同包名称的相同应用程序。那么我可以用相同的包名将其上传到Play商店吗?如果是,那么如何?\n任何帮助将不胜感激。
\n对于Leanback BrowseFragment,默认情况下屏幕左侧有一个搜索视图.是一种更改默认图标SearchOrbView或隐藏它的方法.
https://cdn-images-1.medium.com/max/800/1*oIFbcdjYrIqxU55-B23tjA.gif
我有一个扩展RowsFragment的片段,无论我尝试什么,我都无法禁用未选择的行上的调光效果(第一张图片).
这是我的代码:
public class MainFragment extends RowsFragment {
private static final String TAG = MainFragment.class.getSimpleName();
private ArrayObjectAdapter mRowsAdapter;
private static final int GRID_ITEM_WIDTH = 300;
private static final int GRID_ITEM_HEIGHT = 200;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
Log.i(TAG, "onActivityCreated");
super.onActivityCreated(savedInstanceState);
loadRows();
}
private void loadRows() {
mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter(FocusHighlight.ZOOM_FACTOR_LARGE, false));
HeaderItem cardPresenterHeader = new HeaderItem(1, "CardPresenter");
CardPresenter cardPresenter = new CardPresenter();
ArrayObjectAdapter cardRowAdapter = new ArrayObjectAdapter(cardPresenter);
for(int i=0; i<10; i++) {
Movie movie = new Movie(); …Run Code Online (Sandbox Code Playgroud) 我想在同一行显示两种不同类型的卡片(ListRow)。
我尝试通过添加类似于处理显示多个行类型的 viewType 来修改 Presenter 类,RecyclerVew但它不起作用。
我尝试深入研究 Presenter 和ArrayObjectAdapter代码,但没有明显的选择来实现这一点。如果有人这样做了,请指出我正确的方向。
我从Android Studio创建了一个示例项目.虽然创建第一次它要求移动应用程序,我也检查了电视项目.它在同一个项目中创建了两个模块,名称为mobile和tv,两个项目分别包含res,main,values文件夹.当我尝试运行项目时,我可以运行任何一个,它为两者创建单独的apk.是否有可能创建一个apk并在电视和移动设备上运行?
我有一个适用于手机/平板电脑的 android 应用程序。我想添加对 Android TV 的支持。
官方文档说要为电视创建一个单独的活动。
电话和电视之间的唯一区别是表示层(即视图),所以我只需要创建新的布局,而不是控制器。
我创建了适用于电视的布局并使用相同的控制器。问题是我无法指定哪些布局适用于电视,哪些布局适用于手机/平板电脑。
我无法对屏幕尺寸和设备类型做出假设。有些手机的屏幕分辨率高于电视,反之亦然。
如何为电话和电视提供不同的布局?
如果有更好的方法可以在不编写(或复制)我现有的 Java 代码的情况下做到这一点,我也会接受。
我正在尝试减少标题片段宽度。但是我可以更改标题片段内的文本和图标而不是宽度。
我试图在项目布局内设置宽度,但不幸的是它不起作用。
icon_header_item.xml
Run Code Online (Sandbox Code Playgroud)<RelativeLayout android:layout_width="100dp" android:layout_height="wrap_content"> <ImageView android:id="@+id/header_icon" android:layout_width="48dp" android:layout_height="48dp" android:layout_marginTop="20dp"/> <TextView android:id="@+id/header_label" android:layout_width="140dp" android:layout_below="@id/header_icon" android:layout_centerHorizontal="true" android:layout_height="wrap_content"/> </RelativeLayout> </android.support.v17.leanback.widget.NonOverlappingLinearLayout>在图片中看到