Android Studio 3.6 - как использовать макеты в палитре дизайна? - PullRequest
0 голосов
/ 19 апреля 2020

Я новичок в Android разработке и Android студии. Я использую Android Studio 3.6.1. У меня проблемы с пониманием параметров «Макеты» в палитре дизайна. Во-первых, я не вижу опцию "RelativeLayout". Я понимаю, что многие считают, что это заменено ConstraintLayout, но мне кажется, что это должен быть выбор. Во-вторых, я не вижу, как даже использовать эти параметры макета. Если я перетащу один в существующий дизайн, ничего не произойдет. Я думал, что, возможно, это заменит макет root, но, похоже, нет. Он не создает дочерний макет (если это возможно). Мой код - это просто простой класс «MainActivity» с «setContentView (R.layout.activity_main);» в методе onCreate (). Я изучал файл activity_main. xml, чтобы изучить концепции пользовательского интерфейса. Я могу ввести изменения вручную, чтобы изменить макет на RelativeLayout, но не было очевидно, каким был путь к классу класса RelativeLayout, он не находится в том же пакете, что и класс ConstraintLayout. Я пытаюсь использовать возможности Android Studio IDE для обнаружения параметров и построения кода, но я не нахожу, как использовать его для параметров макета. Я попытался очистить файл «activity_main. xml», а затем перетащил макет из палитры, но ничего не произошло. Я могу удалить файл «activity_main. xml» и создать новый, но когда он запрашивает макет, не удается найти его, чтобы выбрать его, кажется, вам нужно знать пакет.

Как на самом деле эти макеты в палитре дизайна можно использовать в IDE? Можно ли добавить RelativeLayout в список? Есть ли другие недостающие макеты?

package com.example.test;

import android.os.Bundle;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

}




<?xml version="1.0" encoding="utf-8"?>
<android.widget.RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />
</android.widget.RelativeLayout>

1 Ответ

0 голосов
/ 19 апреля 2020

Что-то изменилось, и теперь я могу щелкнуть правой кнопкой мыши макет и «добавить в дизайн» или перетащить его в дизайн. Я также могу щелкнуть правой кнопкой мыши Макет в дереве компонентов и преобразовать его в другой макет, включая RelativeLayout. Для этого я добавил компонент Calendar в свой дизайн и построил и запустил в эмуляторе. После этого я удалил Календарь и обнаружил, что теперь могу перетащить компоненты макета или преобразовать компонент root. Так что мне удобно использовать макеты в палитре. Мне все еще неясно, как обнаружить макеты при создании нового файла макета XML, когда он запрашивает тег "root". Но я понимаю, что вам не нужен полный путь, кажется, просто имя класса, очевидно, IDE находит этот класс. Клей за кулисами мне нужно узнать больше.

...