2016-12-12 16 views
1

現在、Android TVアプリを開発中です。あなたがリストを描いてユーザーに触れることができないので、私はそれが難しいと感じています。ユーザーがDpadボタンを押すと、プログラムでリストをスクロールする必要があります。Android TVのメニューを作成する最も良い方法は何ですか?

Android TVの[設定]画面のメニューに似たリストを作成します。例えば、以下の動画をご覧ください。

https://www.dropbox.com/s/yvhrrh7wy8jj2s4/device-2016-12-08-111314.mp4?dl=0

これまでのところ、私が使用しているソリューションは、水平RecyclerViewを作成することであるアップデートユーザーがDPAD右または左に当たります。

は、だから私のadapterに私は方法があります。これは、項目が選択されるように見えるようになります

if(position == currentSelection) { 
     //draw item to look like it's selected 
    } 
    else if(position == previousSelection) { 
     // draw item to look it's NOT selected 
    } 

、しかしリスト:onBindViewHolderが呼び出されたときに

public void incrementPosition() { 
     if(currentSelection < getItemCount()) { 
      previousSelection = currentSelection; 
      notifyItemChanged(previousSelection); 
      currentSelection++; 
      notifyItemChanged(currentSelection); 
     } 
} 

は、それから私はのようなものを持っています新しい選択と共にスクロールしません。

recentlyAddedRecyclerView.smoothScrollToPosition(currentSelection + 2) 

(そこにif文はい、私はcurrentSelection + 2はリストを越えて行くことができます知っている、私はいくつか持っている)

結果は、上記の投稿ビデオに似ています。しかし、それは私がそれが欲しいと思っているように "スナップ"ではありません。私はこれを実装するための最良の方法であることを確認したいだけです。

これはネットワークコールの動的リストです。だから私は静的ビューでレイアウトを作ることはできません。

+0

このサンプルプロジェクト/ライブラリを見たことを確認してください:https://github.com/googlesamples/androidtv-Leanbackこれはhttps://github.com/googlesamples/leanback-showcase –

+0

はい、私は現在、リーンバックアプローチを試みています。これらのサンプルアプリケーションは、非常に特定のUIを持つアプリケーションを作成しようとするまで素晴らしいものです。たとえば、私はVerticalGridFragmentを使って選択可能な画像を画面に描画しています。今、ページネーションを追加する方法は?どのように私はレイアウトの先頭にドロップダウンを追加すると、私はレイアウトを膨らませていないときにも始めることができますか?レイアウトがないときにサイドバーにイメージを追加するにはどうすればいいですか? –

+0

あなたが間違ったやり方をしている、または少なくともLeanbackの経験に縛られていないページングとドロップダウンメニューをやっているならば、私は思っています。チェックアウトする2つのリソース:ライブラリ上のGoogle IOビデオ:https://youtu.be/QFHIfQy8_WcとUdacity Android TVコース:https://www.udacity.com/course/android-tv-and-google-cast-開発 - ud875B –

答えて

2

ライブラリv17.leanback.appライブラリはこれを行う方法です。これがあなたのビデオで使用されたものです。新しく作成されたAndroidスタジオプロジェクトをAndroid Studio TVで自動生成すると、ヘッダー行やカスタマイズなどの具体的な例が表示されます。

ちょうどの場合: 1。 Androidのメーカー> [ファイル]> [新規プロジェクト]> [名前だけTVプラットフォームを選択し次 2.をクリックし&そしてその後、あなたはMainFragment & CardPresenterを気にします次

をクリックして次 3.「アンドロイドテレビアクティビティ」をクリックします。 BrowseFragmentを行で構成するリストビューと考えてください。行にはFrameLayoutsが組み込まれたカードがいっぱいです。 RecyclerViewは既にleanbackに統合されています...私は、あなたが気づいたようにそれらをカスタマイズするのに多くの時間を費やさなければならず、関連するオンラインドキュメントを見つけたり/ナビゲートしようとしていることがわかりました。がんばろう。

+0

あなたは実際にHBO NowやNetflixに似たテレビアプリケーションを作成するためにleanbackを使用しましたか?私のアプリは、痩身のデモのようには見えません。サイドバーにはアイコン、色、アニメーションが必要ですが、メイン画面にはソートフィルタ、ボタンなどがあります。これはどのようにリーンバックで行いますか?私は基本的なデモアプリケーション以外の何かのように見える痩せ型アプリケーションをどのように作ることができるかを理解していません。 –

+1

はい私はそのような目的のためにテレビアプリケーションを作成するためにleanbackを使用しましたが、はいそれは難しいことができます。あなたがしていない場合は、leanbackのショーケースを見て:https://github.com/googlesamples/leanback-showcase(YouTubeにもビデオがあります)。それ以外のところでは、「あなたはAndroid TVメニューを作成する最良の方法は何ですか?」よりも具体的な質問をしなければならないと思います。幸運を祈るものがあなたのために働きます。 p.s.私はあなたのmp4のリンクを動作させることができません。 – gfunk

関連する問題