2016-09-13 5 views
1

私はAndroidTV用のVODビデオとライブストリーミングを視聴するためのアプリを書いています。現時点では、プレイヤーのコントローラーではPlaybackOverlayFragmentを使用していますが、VODビデオでは問題はありません。ライブストリーム中に現在の時間を隠しているだけの小さな問題があります。 TextViewを隠す方法はありますか?私は、 mTotalTimemProgressBarに0に設定することに気づいた。簡単な方法でmCurrentTimeと同じことを行うことは可能でしょうか?PlaybackOverlayFragmentを使って現在の時間を隠す

答えて

1

idに直接アクセスすると、this.mCurrentTime = (TextView)rootView.findViewById(id.current_time);と表示され、その表示をView.INVISIBLEに設定できます。 PlaybackOverlayFragmentonCreateView()またはonStart()にこれを行うことができます。これは、leanbackライブラリを更新するときに中断されることがありますが、これによりコードの行数を最小限に抑えることができます。

ウサギの穴を降りたい場合:コントロールの行ビューは、PlaybackControlsRowPresenterここに:mPlaybackControlsPresenter = new PlaybackControlsPresenter(R.layout.lb_playback_controls);に設定されています。

また、レイアウトファイル(リーンバックチームが推奨するものだと思います)を上書きして、レイアウトをカスタマイズすることもできます(同じIDをそのまま使用する限り)。それとも、また、現在のタイムテキストビューのスタイルをオーバーライドすることができます:

<style name="Widget.Leanback.PlaybackControlsTimeStyle"> 
    <item name="android:textAlignment">viewStart</item> 
    <item name="android:textAppearance">@style/TextAppearance.Leanback.PlaybackControlsTime</item> 
</style> 

しかし、これは(現在および合計)の両方の時間のスタイルに影響を与えます。

基本的に、在庫切れのコンポーネントを制御したい場合は、何かを無効にする必要があります。上書きするかどうかは、変更する必要があるかどうかによって決まります。

+0

あなたの提案に感謝しますが、私はあなたの最初の解決策に従っていますが、 'TextView current_time'は' onCreateView() 'と' onStart() 'の両方でnullです。私が今までに見つけた最良の解決策は、 'onRowChanged(PlaybackControlsRow row)'コールバックでビューを取得することですが、適切でない動作を作成します。プレイヤーが起動するとすぐに、current_timeが現れ、目に見えなくなります。コントローラが現れる前に 'current_time'状態を' INVISIBLE'にするべきです。提案はありますか? –

+0

'current_time'と' total_time'の両方を非表示にしますか?それとも、 'current_time'を隠したいのですか? –

+0

はい、私は両方を隠すべきです。 'total_time'を隠すことは、その値が<0だが' current_time'のために十分でない場合にLeanbackによって行われるので簡単です。あなたの提案では、 'current_time'も隠すことができますが、しばらくの間、' onRowChanged() 'が呼び出されると表示され消えます。私の質問は今です:メディアコントローラが表示される前に 'current_time'を隠すことは可能ですか? –

関連する問題