android 学习笔记(1)
后续会添加,记录学习成长过程
第一点
- 在Android开发中,
View.GONE
是一个用于设置视图(View)可见性的常量,它定义在View
类中。当你将一个视图的可见性设置为View.GONE
时,该视图会从其父布局中完全消失,并且不会占用布局中的空间,就好像它从未被添加到布局中一样。
这里是View
类中定义的三个可见性状态之一:
View.VISIBLE
:视图可见,并且占用布局空间。View.INVISIBLE
:视图不可见,但仍然占用布局空间。View.GONE
:视图不可见,并且不占用布局空间。
在Kotlin中,你可以这样设置视图的可见性:
val myView = findViewById<View>(R.id.my_view)
myView.visibility = View.GONE // 将视图设置为GONE,即不可见且不占用空间
使用View.GONE
可以在需要时隐藏视图,并且确保它不会影响布局的其他部分。这在动态显示和隐藏视图时非常有用,特别是在响应用户交互或数据变化时。
第二点
- 解决横屏黑色边缘的问题
-
在需要添加的该条件的活动activity 中的setContview()上加
-
如:
//解决横屏和竖屏黑色边缘的问题
var attributes = getWindow().getAttributes();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
getWindow().setAttributes(attributes);
}
setContentView(R.layout.activity_main)
-
这段代码是用于Android应用开发中的Java代码片段,它的作用是设置应用窗口的属性,以便在Android P(API 级别 28)及以上版本的设备上,应用的内容可以延伸到屏幕的刘海或水滴区域。下面是代码的逐行解释:
-
var attributes = getWindow().getAttributes();
这行代码获取当前窗口的属性。getWindow()
方法返回当前Activity的Window对象,getAttributes()
方法则获取这个Window对象的属性。 -
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
这是一个条件判断语句,用于检查当前设备运行的Android系统版本是否在Android P(API 级别 28)或以上。Build.VERSION.SDK_INT
是一个整数值,表示当前设备的Android系统版本。 -
attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
如果设备运行在Android P或以上版本,这行代码会设置窗口属性,使得应用的内容可以延伸到屏幕的刘海或水滴区域。LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
是一个常量,表示应用的内容应该延伸到屏幕的短边(通常是顶部或底部)的刘海区域。 -
getWindow().setAttributes(attributes);
这行代码将修改后的属性应用到当前窗口上,使得更改生效。
这段代码的目的是在支持刘海或水滴屏幕的设备上,让应用界面能够更好地适应屏幕形状,避免内容被刘海遮挡。这是Android开发中处理屏幕刘海问题的一种常见做法。
-
第三点
-
强制横屏的方法
-
在需要添加的该条件的活动activity 中的setContview()下加,setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
-
如:
setContentView(R.layout.activity_main)
//强制横屏的方法之一
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
-
或者,
-
androidManifest.xml 下,在需要的活动下加 android:screenOrientation=“landscape”
-
如:
<activity
android:name=".MainActivity"
android:screenOrientation="landscape"
android:exported="true">