Leanback を使用して、ビデオ プレーヤーのプレーヤー コントロール バーの真上にアクション アイテムの行を作成しようとしています。
アクション アイテムは、(絵文字の反応を表すために) アクション可能な画像ビューの ListRow です。
私の問題: プライマリ コントロール バーとセカンダリ コントロール バーがプレーヤーの中央に配置されているように、それらを中央に配置することができません。現在のリスト行は次のように表示されます。
個々のアクションを定義する XML レイアウトは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<com.makeramen.roundedimageview.RoundedImageView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/rounded_image_view"
android:src="@drawable/ic_action_insert_emoticon"
android:scaleType="fitStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:riv_corner_radius="30dip"
app:riv_border_width="2dip"
app:riv_border_color="#333333"
app:riv_tile_mode="repeat"
app:riv_oval="true">
</com.makeramen.roundedimageview.RoundedImageView>
そして、各行アイテムをインスタンス化するプレゼンター:
public class RoundedViewPresenter extends Presenter {
private static final String TAG = RoundedViewPresenter.class.getSimpleName();
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View rootView = inflater.inflate(R.layout.rounded_image_view, parent, false);
RoundedImageView roundedImageView = (RoundedImageView) rootView.findViewById(R.id.rounded_image_view);
//roundedImageView.mutateBackground(true);
//roundedImageView.setBackground(backgroundDrawable);
roundedImageView.setFocusable(true);
roundedImageView.setFocusableInTouchMode(true);
((HorizontalGridView)parent).setGravity(Gravity.CENTER);
return new ViewHolder(roundedImageView);
} ...
次に、次のようにプレーヤーのフラグメントに行を追加します。
// add emoji rows
...
ArrayObjectAdapter emojiRowAdapter = new ArrayObjectAdapter(new RoundedViewPresenter());
emojiRowAdapter.add(mObjectModel0);
emojiRowAdapter.add(mObjectModel1);
emojiRowAdapter.add(mObjectModel2);
emojiRowAdapter.add(mObjectModel3);
ListRow emojiRow = new ListRow(emojiRowAdapter);
mRowsAdapter.add(emojiRow);
...
私は android:layout_gravity="center" とプログラムによる HorizontalGridView.setGravity ()の両方のアプローチを試しましたが成功しませんでした。
理由、および/または行を中央に配置するための代替方法はありますか?