Fix dialog bug

release
FongMi 2 years ago
parent 6cb7a32648
commit ba2e860945
  1. 5
      app/src/main/java/com/fongmi/android/tv/ui/custom/CustomRecyclerView.java
  2. 8
      app/src/mobile/java/com/fongmi/android/tv/ui/dialog/LiveDialog.java

@ -11,6 +11,7 @@ import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.utils.ResUtil;
public class CustomRecyclerView extends RecyclerView {
@ -32,6 +33,10 @@ public class CustomRecyclerView extends RecyclerView {
init(context, attrs);
}
public void setMaxHeight(int maxHeight) {
this.maxHeight = ResUtil.dp2px(maxHeight);
}
private void init(Context context, AttributeSet attrs) {
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomRecyclerView);
maxHeight = a.getLayoutDimension(R.styleable.CustomRecyclerView_maxHeight, maxHeight);

@ -2,6 +2,7 @@ package com.fongmi.android.tv.ui.dialog;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.WindowManager;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
@ -12,6 +13,7 @@ import com.fongmi.android.tv.databinding.DialogLiveBinding;
import com.fongmi.android.tv.impl.LiveCallback;
import com.fongmi.android.tv.ui.adapter.LiveAdapter;
import com.fongmi.android.tv.ui.custom.SpaceItemDecoration;
import com.fongmi.android.tv.utils.ResUtil;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
public class LiveDialog implements LiveAdapter.OnClickListener {
@ -20,6 +22,7 @@ public class LiveDialog implements LiveAdapter.OnClickListener {
private DialogLiveBinding binding;
private LiveAdapter adapter;
private AlertDialog dialog;
private boolean full;
public static LiveDialog create(Activity activity) {
return new LiveDialog(activity);
@ -31,6 +34,7 @@ public class LiveDialog implements LiveAdapter.OnClickListener {
private LiveDialog(Activity activity) {
this.callback = (LiveCallback) activity;
this.full = true;
init(activity);
}
@ -61,10 +65,14 @@ public class LiveDialog implements LiveAdapter.OnClickListener {
binding.recycler.setHasFixedSize(true);
binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 8));
binding.recycler.post(() -> binding.recycler.scrollToPosition(LiveConfig.getHomeIndex()));
if (full) binding.recycler.setMaxHeight(264);
}
private void setDialog() {
if (adapter.getItemCount() == 0) return;
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
if (full) params.width = (int) (ResUtil.getScreenWidth() * 0.5f);
dialog.getWindow().setAttributes(params);
dialog.getWindow().setDimAmount(0);
dialog.show();
}

Loading…
Cancel
Save