记录Android的小知识点(持续更新,大概)

来张美图


 

1.删除默认导航栏

在application中的原属性如下,改变theme

android:theme="@style/AppTheme"

改成下面这个样子
android:theme="@style/Theme.Design.NoActionBar">

最主要的一句话是  

NoActionBar ,只要有这个的都可以

2.App没有网络权限

很多初学者都是活在单机下,那怎么行

在AndroidMainfies.xml修改 

uses-permission属性,没有就手动添加
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.viewpager">
<uses-permission android:name="android.permission.INTERNET"/>  //这一句话加在这
    <application
  ......
</manifest>

 3.AlertDialog确认框

下面采用Kotlin编写

//删除按钮

binding.deleteButton.setOnClickListener {
    val dialog=AlertDialog.Builder(requireContext()).apply {
setTitle("你确定要删除吗?")
setPositiveButton("确定",DialogInterface.OnClickListener { dialog, which ->

})
setNegativeButton("取消",DialogInterface.OnClickListener { dialog, which ->

})
}.create().show()
}

 4.Intent + FileProvider来实现分享文件

首先设置好FileProvider的先决条件

这位大佬有讲,https://www.jianshu.com/p/47fcd7873f39 

我的设置如下:

好了,设置完了,开始用了,其中mediaFile是File类型,不管是啥文件都行,下面的代码设置一个点击事件放里面就行

 

  5.多重scrollview嵌套滑动受阻,或者scrollview+webview导致内部滑动不正常

我们需要重新内部的触摸监听事件,写完之后在手指摸内部滑动窗口的时候就不会调用外部的

例如哪 webview举例子(kotlin写法)

        webview.setOnTouchListener { v, event ->
                (v as WebView).requestDisallowInterceptTouchEvent(true)
                false
            }    

java写法

webview.setOnTouchListener(new OnTouchListener() {  
      
    @Override  
    public boolean onTouch(View v, MotionEvent ev) {  
  
        ((WebView)v).requestDisallowInterceptTouchEvent(true);  
          
        return false;  
    }  
}); 

这么做虽然可以解决,但是还是有bug,比如内部scrollview滑动到底部我们通常希望他再往下滑就是滑动外部的scrollview了,或者往上滑动外部往上,慢慢来,一口气不能吃成胖子

因此我们需要监听内部滑动状态,当滑动到底部的时候,移除这个

setOnTouchListener即可
posted @ 2020-04-23 12:10  Yunssss  阅读(119)  评论(0编辑  收藏  举报