2016-06-21 78 views
0

我开始学习如何第一次构建Android TV,因此我对此问题的一个可能的明显答案表示歉意。基本上,我试图复制如何在Android TV YouTube应用时显示有如图所示没有互联网连接:在Android TV中为片段创建叠加层?

enter image description here

YouTube上显示在没有视频的背面的主片段(我相信),和似乎与ImageView,TextViewButton有透明重叠。一旦有互联网连接并且用户点击重试按钮,它将加载视频内容并且覆盖消失。

我试图做到这一点完全相同的技术,并与互联网连接,我现在有这样的:

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语句中。我不确定在那里创建什么来实现这个覆盖。

我已经看了关于切换片段这里的一些解决方案:

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

不过,我不知道,我的目的,我需要做这个?

有人能指出我正确的方向吗?我不想让某人完全像YouTube应用程序那样编写完整的代码,但我想要一个小样本,可能只有ButtonTextView?这将允许我遵循结构并对其进行修改以符合我的要求。

感谢。

回答

1

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

要进行显示:

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

你的答案向我指出了正确的方向,我用'getFragmentManager()调用BeginTransaction()加(R.id.main_browse_fragment,internetError)。提交();'相反,但不知道为什么我会使用添加替换在我的情况 – Pangu