记录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即可