gpt4 book ai didi

java - 在 Android TV 中的 fragment 上创建叠加层?

转载 作者:行者123 更新时间:2023-12-01 09:46:48 25 4
gpt4 key购买 nike

我第一次开始学习如何构建 Android TV,因此对于这个问题的可能显而易见的答案我深表歉意。基本上,我试图复制 Android TV Youtube 应用程序在没有互联网连接时的显示方式,如下所示:

enter image description here

YouTube 在后面显示了主要 fragment (我相信),但没有视频,并且似乎有一个带有 ImageViewTextView 的透明覆盖层>按钮。一旦建立互联网连接并且用户点击“重试”按钮,它就会加载视频内容并且叠加层会消失。

我正在尝试实现完全相同的技术,并且通过互联网连接,我目前拥有:

enter image description here

在没有互联网连接的情况下,我想展示一些与 YouTube 类似的内容。

这是我的一些基本代码:

MainActivity.java:

public class MainActivity extends Activity
{
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_browse_fragment"
android:name="com.ui.MainFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.ui.MainActivity"
tools:deviceIds="tv"
tools:ignore="MergeRootFrame" />

MainFragment.java:

public class MainFragment extends DetailsFragment
{
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);

setupUIElements();

setupThings();
}

public void setupThings()
{
if (isOnline() == true)
{
prepareBackgroundManager();
loadRows();
setupEventListeners();
}
else
{
// I don't know what to do here???
}
}

public Boolean isOnline()
{
try
{
Process p1 = java.lang.Runtime.getRuntime().exec("ping -c 1 www.google.com");
int returnVal = p1.waitFor();
boolean reachable = (returnVal == 0);

return reachable;
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
}

很简单,如果有互联网连接,我会从网上加载视频,否则,我会像 YouTube 一样通知用户。

我陷入困境的是 else 语句。我不确定要在那里创建什么来实现这个覆盖。

我在这里查看了一些有关切换 fragment 的解决方案:

  1. Switching between Fragment view
  2. How to switch between fragments during onclick?

但是,我不确定为了我的目的,我是否需要这样做?

有人能指出我正确的方向吗?我不希望有人像 YouTube 应用一样编写整个代码,但我想要一个小样本,可能只有一个 ButtonTextView ?这将使我能够遵循该结构并对其进行修改以满足我的要求。

谢谢。

最佳答案

您可以查看Leanback Sample app ,其中包含 BrowseErrorFragment 的示例.

显示:

BrowseErrorFragment errorFragment = new BrowseErrorFragment();
getFragmentManager().beginTransaction().replace(R.id.main_frame, errorFragment)
.addToBackStack(null).commit();

关于java - 在 Android TV 中的 fragment 上创建叠加层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37937972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com