Kotlin学习记录2
Android Studio中的注意事项
本文为个人学习记录,仅供参考,如有错误请指出。本文主要记录在Android Studio中开发时遇到的问题和回答。
Fragment有哪些特性?
Fragment 是 Android 开发中的一个重要组件,具有以下特性:
- 模块化与复用性:
1.Fragment 可以将 UI 和逻辑模块化,便于在不同 Activity 中复用。例如,一个 Fragment 可以在多个 Activity 中使用,减少代码重复。
- 生命周期管理:
1.Fragment 有自己的生命周期,与 Activity 生命周期紧密关联。
2.主要生命周期方法包括 onCreateView、onStart、onResume、onPause、onStop、onDestroyView 等。
- 动态添加与替换:
1.可以在运行时动态添加、替换或移除 Fragment。
2.使用 FragmentManager 和 FragmentTransaction 来管理 Fragment 的操作。
- 支持回退栈:
1.Fragment 事务可以添加到回退栈中,用户可以通过返回键回溯 Fragment 状态。
2.使用 addToBackStack 方法将事务加入回退栈。
- 与 Activity 通信:
1.Fragment 可以通过 getActivity() 获取所属的 Activity。
2.Activity 可以通过 FragmentManager 获取 Fragment 实例,进行通信。
- UI 灵活性:
1.Fragment 可以在不同屏幕尺寸和方向上灵活调整布局。例如,在平板设备上可以同时显示多个 Fragment,而在手机上可能只显示一个。
- 数据传递:
1.可以通过 setArguments 和 getArguments 方法在 Fragment 之间传递数据。
2.也可以通过接口回调的方式实现 Fragment 与 Activity 之间的数据交互。
- 嵌套 Fragment:
1.支持在 Fragment 中嵌套其他 Fragment,进一步增加 UI 的复杂性和灵活性。
- 总结:
Fragment 提供了一种灵活的方式来构建和管理 UI 组件,适用于复杂的应用界面设计,特别是在需要适应不同屏幕尺寸和设备类型时。
TextView有哪些特性?
-
文本内容相关属性
android:text 设置 TextView 显示的文本内容。 例如:android:text=“Hello World”。
android:textSize 设置文本的字体大小,单位为 sp(缩放像素)。 例如:android:textSize=“16sp”。
android:textColor 设置文本的颜色,可以是颜色值或资源引用。 例如:android:textColor=“#FF0000” 或 android:textColor=“@color/red”。
android:textStyle 设置文本的样式,如粗体 (bold)、斜体 (italic) 或正常 (normal)。 例如:android:textStyle=“bold|italic”。
android:fontFamily 设置文本的字体。 例如:android:fontFamily=“sans-serif”。
android:textAllCaps 设置是否将所有文本转换为大写。 例如:android:textAllCaps=“true”。 -
布局相关属性
android:layout_width 和 android:layout_height 设置 TextView 的宽度和高度。 常用值:match_parent、wrap_content 或具体尺寸(如 100dp)。
android:gravity 设置文本在 TextView 内部的对齐方式。 例如:android:gravity=“center” 使文本水平和垂直居中。
android:layout_gravity 设置 TextView 在其父容器中的对齐方式。 例如:android:layout_gravity=“center” 使 TextView 在父容器中居中。 -
背景与边框
android:background 设置 TextView 的背景颜色或背景图片。 例如:android:background=“#CCCCCC” 或 android:background=“@drawable/bg_image”。
android:drawableStart、android:drawableEnd、android:drawableTop、android:drawableBottom
访问权限:
在类中定义成员属性时,不同可见性的访问权限如下:
- private:意味着该成员仅在此类中可见(包括其所有成员)。
- protected:与private的可见性类似,外部无法使用,但在子类中可以使用。
- internal:意味着本项目中任何地方都会看到其internal成员,但是别人引用我们项目时不行。
- Public:意味着任何地方都可以访问。
生命周期:
视图的生命周期:与Activity的生命周期类似:
onCreate -> onCreateView(创建视图) -> onViewCreated(视图初始化) -> onStart -> onResume
Activity的生命周期:
wrap_content和match_parent有什么区别?
属性 | wrap_content | match_parent |
---|---|---|
行为 | 视图大小根据内容自适应 | 视图大小填充父容器的可用空间 |
适用场景 | 内容大小不确定,希望视图自适应内容时 | 希望视图占满父容器的全部空间时 |
示例 | TextView根据文本长度调整宽度 | Button占满屏幕宽度 |
父容器影响 | 不受父容器大小影响,仅根据内容调整 | 完全依赖父容器的大小 |