基本上,我想通过创建XML文件来在android中通过默认文本视图添加自定义属性,该如何创建XML文件呢? 像
<TextView
android:id="@+id/textView16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"`enter code here`
android:text="TextView"
customfontdemo:fontName="Anything"
tools:layout_editor_absoluteX="163dp"
tools:layout_editor_absoluteY="166dp" />
这是我的自定义属性#fontName
,我想在默认UI组件中添加我的自定义属性,我该怎么做?
并在.kt文件中读取
答案 0 :(得分:0)
如果我对您的理解正确,则希望能够在现有视图上使用自定义属性。
为此,您将需要“劫持”通胀过程。 如果您将api 11+作为目标,则可以通过实现自定义LayoutInflator.factory或factory2来实现这一目标(注意:Android团队需要学习如何命名事物)
工厂是一个包含函数的接口
View onCreateView(View parent, String name, Context context, AttributeSet attrs)
这是从源代码中提取的完整界面
public interface Factory2 extends Factory {
/**
* Version of {@link #onCreateView(String, Context, AttributeSet)}
* that also supplies the parent that the view created view will be
* placed in.
*
* @param parent The parent that the created view will be placed
* in; <em>note that this may be null</em>.
* @param name Tag name to be inflated.
* @param context The context the view is being created in.
* @param attrs Inflation attributes as specified in XML file.
*
* @return View Newly created view. Return null for the default
* behavior.
*/
public View onCreateView(View parent, String name, Context context, AttributeSet attrs);
}
请查看此tutorial,以帮助您实施工厂。 实施工厂后,您可以更换
活动
setContentView(View)
片段/简单通胀类型
onCreateView()