Android studio 学习内容记录

2019.10.31

 一直都在想,能每天把自己学习的东西或者说遇到的问题记录下来今天中午于是开始了。

1、另外一种加载控件的方式,新建这样的一个layout文件,可以在xml界面设置相关属性。

我这边使用这种方式定义控件格式的时候,主要是在代码中动态加载控件的时候,属性不是很好设置。所以采用这种方式。

代码中使用:

 EditText editText = (EditText) LayoutInflater.from(this).inflate(R.layout.selfdefine_edittext, ll_All, false);

这样就可以获取到刚才自己定义的一个editText控件了。

2019.11.1

以前写好MPandroidChart今天突然报错了。检查了原因是因为今天是1号 在我这个项目中也就是折线图中只有一个数据。我才可能是 只有一个数据的时候数据会显示在中间,导致x轴的0点出没有数据 返回了null,这里做一个判断就可以了,如果是null返回“”就可以了。如果有人看到正确的做法,麻烦告知,谢谢。

自定义dialog 想用来显示全屏的图片,但是发现,总是设置不了全屏,自定义的时候这样写:

下面是自定义的style

2019.11.11

解决MPAndroidChart Y轴显示的数值长度不一导致当有多个LineChart时,看起来比较乱。

双十一啥也没买,现在带着对象在公司加班,这双十一····

曲线这里我用的是MPAndroidChart  因为图像太多,后面Y轴的数据有长有短,导致图形无法对其,今天终于是有点小时间了。把这里弄了一下啊,没想到时间还挺长。一直想着格式话数值。将y轴显示的书格式化一下,后面太短的补充空格,弄了一上午最后还是没弄出来,

 r_YAxis.setValueFormatter(new IAxisValueFormatter() {
//                @Override
//                public String getFormattedValue(float v, AxisBase axisBase) {
//                    Log.i(TAG, "getFormattedValue--y: " + v);
                    if ((int) v > 0 && (int) v < y_List.size()) {
//                        String tmpValue = y_List.get((int) v);
//                        String s = "";
//                        if (tmpValue.contains("-")) {
//                            s = "-"+String.format("%,.2f", Double.parseDouble(tmpValue.replace("-","")));
//                        } else {
//                            s = String.format("%,.2f", Double.parseDouble(tmpValue));
//                        }
//                        /*
//                         * 将字符串格式化
//                         * */
//                        s=String.format("%-9s", s);
//                        return s;
                    } else {
                        return "";
                    }
                    return "123";
//                }
//            });

这里不知道为什么v的值总是不能确定,导致y_List总是报数数组越界,也打断电了,但是还是不知道怎么确定v的值,后来又找别的办法,最后终于在一篇博客中看到有一个这个方法

myViewHolder.lc_ProductLog.setViewPortOffsets(10, 5, 80, 60);

setViewPortOffsets(float left, float top, float right, float bottom): Sets custom offsets for the current ViewPort (the offsets on the sides of the actual chart window). Setting this will prevent the chart from automatically calculating it’s offsets. Use resetViewPortOffsets() to undo this. USE THIS ONLY WHEN YOU KNOW WHAT YOU ARE DOING.

这是官网上给出的解释,但是只设置还是不行,效果要点击一下才能实现。继续在csdn上面找。最后还是在gitHub上找到了原因

在设置这个属性之前加一句这个

myViewHolder.lc_ProductLog.animateY(500);

效果就出来了。我也不知道是为什么。知道的可以留言跟我说声。

2019年11月20

可能是更新Android版本的原因

今天app登录报错:

Detected problems with API compatibility问题,如下图

网上很多是升级Android p 但是我没升级啊。。。

反正解决办法就是:在app初始化的时候也就是在 application中执行下面这个方法。问问题就解决了

private void closeAndroidPDialog(){
        try {
            Class aClass = Class.forName("android.content.pm.PackageParser$Package");
            Constructor declaredConstructor = aClass.getDeclaredConstructor(String.class);
            declaredConstructor.setAccessible(true);
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            Class cls = Class.forName("android.app.ActivityThread");
            Method declaredMethod = cls.getDeclaredMethod("currentActivityThread");
            declaredMethod.setAccessible(true);
            Object activityThread = declaredMethod.invoke(null);
            Field mHiddenApiWarningShown = cls.getDeclaredField("mHiddenApiWarningShown");
            mHiddenApiWarningShown.setAccessible(true);
            mHiddenApiWarningShown.setBoolean(activityThread, true);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 

3 手机底部虚拟按键挡住UI显示的内容->解决方法

解决方法有两个,各位看官按需选取吧,

1:使UI不再被虚拟按键挡住,代码如下:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

2:将手机下方的虚拟按键设置为透明,代码如下:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

将以上代码添加在对应Activity中的onCreate()中即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值