現在、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はリストを越えて行くことができます知っている、私はいくつか持っている)
結果は、上記の投稿ビデオに似ています。しかし、それは私がそれが欲しいと思っているように "スナップ"ではありません。私はこれを実装するための最良の方法であることを確認したいだけです。
これはネットワークコールの動的リストです。だから私は静的ビューでレイアウトを作ることはできません。
このサンプルプロジェクト/ライブラリを見たことを確認してください:https://github.com/googlesamples/androidtv-Leanbackこれはhttps://github.com/googlesamples/leanback-showcase –
はい、私は現在、リーンバックアプローチを試みています。これらのサンプルアプリケーションは、非常に特定のUIを持つアプリケーションを作成しようとするまで素晴らしいものです。たとえば、私はVerticalGridFragmentを使って選択可能な画像を画面に描画しています。今、ページネーションを追加する方法は?どのように私はレイアウトの先頭にドロップダウンを追加すると、私はレイアウトを膨らませていないときにも始めることができますか?レイアウトがないときにサイドバーにイメージを追加するにはどうすればいいですか? –
あなたが間違ったやり方をしている、または少なくともLeanbackの経験に縛られていないページングとドロップダウンメニューをやっているならば、私は思っています。チェックアウトする2つのリソース:ライブラリ上のGoogle IOビデオ:https://youtu.be/QFHIfQy8_WcとUdacity Android TVコース:https://www.udacity.com/course/android-tv-and-google-cast-開発 - ud875B –