如何在ConstraintLayout类中扩展XML布局?

时间:2017-07-31 17:45:16

标签: java android layout-inflater android-constraintlayout

我创建了一个ConstrantLayout类

public class AboutView extends ConstraintLayout {

    TextView about_txt;
    TextView dr_txt;

    public AboutView(Context context) {
        super( context );
        init();
    }

    public AboutView(Context context, AttributeSet attrs, int defStyleAttr) {
        super( context, attrs, defStyleAttr );
        init();
    }

    private void init() {
        LayoutInflater inflater = LayoutInflater.from( getContext() );
        inflater.inflate( R.layout.about_layout,this );

        about_txt = (TextView) findViewById(R.id.about_txt);
        dr_txt = (TextView) findViewById(R.id.dr_txt);
    }

}

布局about_layout.XML文件以扩展到类

1 个答案:

答案 0 :(得分:0)

创建布局,以使您的自定义视图看起来像。没什么复杂的。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools">

    <TextView
        android:id="@+id/about_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        app:layout_constraintStart_toStartOf="parent"
        tools:text="About" />

    <TextView
        android:id="@+id/dr_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        tools:text="Text" />

</android.support.constraint.ConstraintLayout>

这样,您可以设置约束并使用编辑器编辑布局。

完成编辑后,我建议将根视图 ConstraintLayout 更改为合并

通过合并,您在自定义视图中不会有多余的布局。请注意-合并属性将被忽略。