**Guys i need help i am trying learn to **do** front-end work programmatically? How i should to do this XML layout in Custom View constructor? Thanks in advance! How i should make custom view constructor like this XML?**
`<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:cardCornerRadius="4dp"
android:layout_margin="2dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="4dp">
<ImageView
android:id="@+id/imageView"
android:layout_width="50dp"
android:layout_height="50dp"
/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text1"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="@android:color/black"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/imageView"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text2"
android:textSize="14sp"
android:textStyle="italic"
android:textColor="@android:color/black"
android:layout_below="@id/textView1"
android:layout_toEndOf="@+id/imageView"/>
</RelativeLayout>
`
我需要帮助吗,我正在尝试学习以编程方式进行前端工作吗?我应该如何在Custom View构造函数中进行此XML布局?提前致谢!我应该如何使自定义视图构造器像这种XML?
答案 0 :(得分:0)
可以以编程方式构建视图,但是您确实应该使用XML。这样,您的应用程序行为,逻辑(在代码中)和UI(在XML中)就被分离了。而且,用XML创建布局要快得多。
以下是使用自定义视图的示例,它内部有一个文本视图:
public class MyRelativeLayout extends RelativeLayout {
private TextView textView;
public MyRelativeLayout(Context context) {
super(context);
textView = new TextView(context);
textView.setText("Hello");
//we must use LayoutParams objects to manage layout properties programmatically
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams
(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 5;
params.rightMargin = 5;
textView.setLayoutParams(params);
addView(textView); //add to our layout
}
}
我只添加了一个文本视图,只设置了边距,但代码已经很长了,与此同时,您可以像这样简单地在XML中完成所有操作:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:text="Hello"/>
</RelativeLayout>
布局变得越复杂,用XML创建布局就越好。长话短说,请使用XML进行布局,然后将其添加到代码中,而不是创建自定义视图。