Как этот код XML для конструктора CustomView программно? - PullRequest
1 голос
/ 14 октября 2019
**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>

`

Ребята, мне нужна помощь, я пытаюсь научиться выполнять интерфейсную работу программно? Как я должен сделать этот макет XML в конструкторе Custom View? Заранее спасибо! Как я должен сделать пользовательский конструктор вида, как этот XML?

1 Ответ

0 голосов
/ 14 октября 2019

Можно создавать представления программно, но вы действительно должны использовать XML. Таким образом, поведение ваших приложений, логика (в коде) и его интерфейс (в 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 для макетов и раздувайте его в своем коде вместо создания пользовательских представлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...