bytedance / scene

Android Single Activity Framework compatible with Fragment.
Apache License 2.0
2.08k stars 199 forks source link

在androidX基础上开发DemoDialogWithDimScene有问题 #27

Closed wflian closed 3 years ago

wflian commented 4 years ago

启动dialog 背景会闪一下 然后出现默认的灰色背景 android:windowBackground 设置会跟着变色,不设置默认灰白色

wflian commented 4 years ago

经过确认是在默认的启动动画完成以后出现背景色,比如.setAnimation(requireActivity(),R.anim.anim_10s, R.anim.anim_10s) 那么就是一开始背景是透明有效的,10以后出现默认默认的灰白色背景

qii commented 4 years ago

我拿最新的 master_androidx 分支上跑的,没看出来问题

wflian commented 4 years ago

我新建项目 按照使用说明引入使用 创建一个 DialogScene 马上就复现了

qii commented 4 years ago

我是直接拿的 master_androidx 分支跑的 DemoDialogWithDimScene

qii commented 4 years ago

我新建项目 按照使用说明引入使用 创建一个 DialogScene 马上就复现了

你是用的 Jetifier?

wflian commented 4 years ago

嗯。是的。 1、AS新建androidx类型项目 2、引入scene 3、创建MainScene 4、启动DemoDialogWithDimScene

public class MainScene extends AppCompatScene {
  private Button mButton;
  @Nullable @Override
  protected View onCreateContentView(@NonNull LayoutInflater inflater, @NonNull ViewGroup container,
      @Nullable Bundle savedInstanceState) {
      FrameLayout frameLayout = new FrameLayout(requireSceneContext());
      mButton = new Button(requireSceneContext());
      mButton.setText("Click");
      frameLayout.addView(mButton, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
          ViewGroup.LayoutParams.WRAP_CONTENT));
      return frameLayout;
  }

  @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
      setTitle("Main");
      mButton.setOnClickListener(new View.OnClickListener() {
        @Override public void onClick(View v) {
          requireNavigationScene().push(DemoDialogWithDimScene.class);
        }
      });
    }
}
qii commented 3 years ago

你的 DemoDialogWithDimScene 得用透明的 PushOption
requireNavigationScene().push(DemoDialogWithDimScene.class, null, new PushOptions.Builder().setTranslucent(true).build());