示例应用的PlaybackOverlayFragment使用 PlaybackControlsGlue 根据数据模型设置播放控件。这是使用标准胶水时的样子:
我的问题是我不希望标题/副标题文本出现在主播放器控制栏上方 - 我们希望它们出现在播放器屏幕的左上角。因此,为了禁用标题/副标题的显示,我重写createControlsRowAndPresenter()
了胶水并使用 PlaybackControlsRowPresenter 的空参数构造函数:
@Override
public PlaybackControlsRowPresenter createControlsRowAndPresenter() {
PlaybackControlsRow controlsRow = new PlaybackControlsRow(this);
setControlsRow(controlsRow);
final View.OnKeyListener onKeyListener = this;
PlaybackControlsRowPresenter presenter = new PlaybackControlsRowPresenter() { // no AbstractDetailsDescriptionPresenter argument
@Override
protected void onBindRowViewHolder(RowPresenter.ViewHolder vh, Object item) {
super.onBindRowViewHolder(vh, item);
vh.setOnKeyListener(onKeyListener);
}
@Override
protected void onUnbindRowViewHolder(RowPresenter.ViewHolder vh) {
super.onUnbindRowViewHolder(vh);
vh.setOnKeyListener(null);
}
};
// secondaryActionsAdapter setup not shown
presenter.setOnActionClickedListener(new OnActionClickedListener() {
@Override
public void onActionClicked(Action action) {
dispatchAction(action);
}
});
return presenter;
}
结果?没有按预期显示标题/副标题,但现在主控件栏和其他行之间的间距更大:
我可能做错了什么,或者它是leanback库的错误?