繁体   English   中英

如何创建Android UI库

[英]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>
  • 接下来,我尝试访问主 xml 文件中的这个 UI 库,如下所示
<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

}

并实现整个onMeasureonLayoutonDraw逻辑。

  • 如果你想扩展现有的视图逻辑,那么只需从现有的视图逻辑继承它并孵化行为。
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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM