gpt4 book ai didi

java - 如何创建 Android UI 库

转载 作者:行者123 更新时间:2023-12-02 13:25:12 24 4
gpt4 key购买 nike

我有很多用于 UI 的实用程序代码,并想为它们中的每一个创建一个 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" />
    现在我什么也得不到。连 toast 消息都没有来。
    如何在 Android 中创建 UI 库并使用它。我有自己的自定义视频播放器、音频播放器、图像渐变 View 等。我现在需要制作所有这些库。谢谢阅读

    最佳答案

    要实现自定义 View 元素,您需要像以前一样将类放入单独的模块中,并从 View 继承自定义 View 。

  • 即,如果它是自定义 View 并且您希望在 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逻辑。
  • 如果要扩展现有 View 逻辑,则只需从现有 View 逻辑继承它并孵化行为。
  • MyCustomView @JvmOverloads constructor(
    context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
    ): TextView() {

    ... your logic goes here...

    }
    您确实实现了一个自定义 Activity ,但像 View 一样使用它,所以,这就是它不适合您的原因
    PS: here您可以了解有关自定义 View 组件的更多信息

    关于java - 如何创建 Android UI 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64539241/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com