Android 踩坑

1、设置背景透明度

正确方法是设置Dialog背景暗黑度,在设置对话框的布局文件后调用以下代码

        Window window = getWindow();
        window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
        WindowManager.LayoutParams attributes = window.getAttributes();
        // 0-1 0为全亮背景 1为全暗背景
        attributes.dimAmount = 0.2f;

错误方法是设置Dialog透明度,该方式设置的是整个Dialog而不仅仅是背景的透明度
Window window = getWindow();
WindowManager.LayoutParams attributes = window.getAttributes();
attributes.alpha = 0.3f;
0-1 0为完全透明 1为完全不透明

2、Warning:debug info can be unavailable.Please close other application using ADB: Monitor, DDMS, Eclipse

在选择调试应用时,弹出以上提示警告内容,执行以下命令

adb usb

会提示:restarting in USB mode
再去选择调试应用时问题解决

3、在Dialog中使用ViewPager报java.lang.IllegalArgumentException:No view found for id 0x889900 for fragment

Dialog中使用ViewPager提示中不到 ViewPager 的 id

分析原因:
创建 PagerAdapter 的时候,传入了一个 FragmentManager,我们一般是传入 getSupportFragmentManager() ,是 Activity 的 FragmentManger。
如果传入的是 Activity 的 FragmentManger,默认在 Activity 的布局 xml 中寻找ViewPager,但是实际上它是在弹出的Dialog里定义的,并不是在 Activity 的布局里,所以出现找不到资源id的情况

解决方法:
使用DialogFragment代替Dialog,创建PagerAdapter时使用getChildFragmentManager()

public class MyDialog extends DialogFragment {

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setStyle(DialogFragment.STYLE_NO_TITLE, R.style.CommonBottomDialogStyle);
    }

    public void onStart() {
        super.onStart();
        WindowManager.LayoutParams params = getDialog().getWindow().getAttributes();
        params.gravity = Gravity.BOTTOM; //显示在屏幕底部
    }

    @Override
    public void onResume() {
        super.onResume();
        //控制弹窗高度 高度只占屏幕的60%
        getDialog().getWindow().setLayout(ScreenUtil.getScreenWidth(getActivity()), (int) (ScreenUtil.getScreenHeight(getActivity()) * 0.6));
    }
}
    <style name="CommonBottomDialogStyle" parent="@android:style/Theme.Dialog">
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">false</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowAnimationStyle">@style/CommonBottomDialogAnim</item>
    </style>

    <style name="CommonBottomDialogAnim" parent="android:Animation">
        <item name="android:windowEnterAnimation">@anim/slide_in_from_bottom</item>
        <item name="android:windowExitAnimation">@anim/slide_out_to_bottom</item>
    </style>

H5相关问题

H5 下载乱码问题
字符集的问题

H5 网易邮箱无法下载附件
防盗链  需要设置cookie
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容