gpt4 book ai didi

java - 从 xml 制作自定义 View

转载 作者:行者123 更新时间:2023-11-30 09:40:23 25 4
gpt4 key购买 nike

我想做一个来自 XML 的自定义 View 。

这是我的 XML:

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/movieTitle"
android:text="@string/movietitle"
android:textSize="35dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
/>
<com.galite.headliner.views.LoaderImageView
android:id="@+id/moviePoster"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/movieTitle"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:contentDescription="@string/poster"
/>
<TextView
android:id="@+id/movieDescription"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/description"
android:layout_below="@id/moviePoster"
android:gravity="center"
/>
</RelativeLayout>

我想扩展到自定义 View ,因为我需要使用 onClick 等方法。

这是我的构造函数:

public MyView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.context = context;
initializeView();
}

public void initializeView(){
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.movie, null);
}

如何使 MyView 等于 v ?

最佳答案

您必须像这样将膨胀 View v 附加到 MyView:

v = inflater.inflate(R.layout.movie, this, true);

如果你想要那个确切的布局,那么让 MyView 扩展 RelativeLayout 并像这样修改 xml 布局:

<merge xmlns:android="http://schemas.android.com/apk/res/android" >
<TextView
android:id="@+id/movieTitle"
android:text="@string/movietitle"
android:textSize="35dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
/>
<com.galite.headliner.views.LoaderImageView
android:id="@+id/moviePoster"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/movieTitle"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:contentDescription="@string/poster"
/>
<TextView
android:id="@+id/movieDescription"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/description"
android:layout_below="@id/moviePoster"
android:gravity="center"
/>
</merge>

关于java - 从 xml 制作自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446895/

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