[英]How to create Android UI library
我有很多用于 UI 的实用代码,想为每个代码创建一个 android 库。 通过我所有的研究,我做了以下事情。
文件 -> 新模块。 创建一个 android 库
在 build.gradle 文件中实现库implementation project(':app:FirstLibrary')
库中的 Kotlin 和 xml 文件如下
FirstLib.kt
class FirstLib(mContext: Context) : Activity() {
private var mContext: Context? = null
private var view: View? = null
fun s(message: String?) {
layoutInflater.inflate(R.layout.first_lib_view, null)
Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show()
}
}
first_lib_view.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Om Namah Shivaya"
android:textSize="16sp" />
</LinearLayout>
<com.example.firstlibrary.FirstLib
android:layout_width="match_parent"
android:layout_height="match_parent"
tools="ajkdfbj"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
现在我什么也得不到。 甚至吐司消息都没有来。
Android中如何创建UI库并使用。 我有自己的自定义视频播放器、音频播放器、图像渐变视图等。我现在需要制作所有这些库。 谢谢阅读
要实现自定义视图元素,您需要像以前一样将 class 放入单独的模块中,并从视图中继承您的自定义视图。
xml
文件中使用它,那么您应该创建如下内容:MyCustomView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
): View {
// you should override onMeasure, onLayout, onDraw here as it marked as abstract afaik
// and implement your logic
}
并实现整个onMeasure
、 onLayout
、 onDraw
逻辑。
MyCustomView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
): TextView() {
... your logic goes here...
}
您确实实现了自定义活动,但像使用视图一样使用它,所以,这就是它对您不起作用的原因
PS:在这里你可以找到更多关于自定义视图组件的信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.