今回はAndroidのレイアウト作成時に使うツール属性について書いていこうと思います
ツール属性は主にレイアウトのプレビュー確認で使う名前空間です
<TextView
android:id="@+id/cardTextView"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:text="TextView"
android:textAlignment="center"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
例えば上記のレイアウトが存在するとして、android:から始まるものは実行時にどう表示するかの設定を行い、tools:から始まるものはプレビューで確認するときの設定を行います
ツール属性の設定
toolsを使えるようにするためにはxmlファイルのルート要素(1番上の要素)に下記を追加します。
設定はこれだけです。次にどんなことができるのかを見ていきましょう!
xmlns:tools="http://schemas.android.com/tools"
ツール属性の種類
ここからはツール属性の種類を見ていきましょう
tools:text
まずは個人的によく使うtools:textです
これは固定文言ではなく、場合によって文言が変更する場合に設定した文言をプレビューでどう表示されるか確認するために使います
tools:text="TextView"
上記を例えば、TextViewに設定するとプレビューでTextViewと表示されます。実際にアプリを起動した場合にはTextViewとは表示されないのであくまでも確認のために使われます
tools:ignore
レイアウトの警告を無視したい場合に使います
本当に無視していいものなのかは確認して無視するべきものだけに使うべきだと個人的に思っているので、ほとんど使わないと思います
ある要素に設定するとその要素と全ての子要素に適用されるので、レイアウトファイルの全てに適用したい場合はトップの要素に記述します
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
tools:igonre= "contentDescription"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@tools:sample/backgrounds/scenic" />
tools:src
tools:textに似ていますが、レイアウトの画像を確認したい場合に使います
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
tools:igonre= "contentDescription"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@tools:sample/backgrounds/scenic" />
tools:context
tools:contextはレイアウトファイルのトップ要素に追加してどのActivityやFragemtをプレビューで表示させるかを設定するものです。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".tutorial.MainActivity">
</androidx.constraintlayout.widget.ConstraintLayout>
tools:layout
tools:layoutはFragementで使うもので、プレビューでフラグメント内に描画されるレイアウトを宣言できます
下記のように設定することでフラグメント内に描画されるレイアウトをプレビューで確認できるようになります
<fragment android:name="com.example.main.ItemListFragment"
tools:layout="@layout/list_content" />
tools:layout
tools:layoutはFragementで使うもので、プレビューでフラグメント内に描画されるレイアウトを宣言できます
下記のように設定することでフラグメント内に描画されるレイアウトをプレビューで確認できるようになります
<fragment android:name="com.example.main.ItemListFragment"
tools:layout="@layout/list_content" />
tools:itemCount
tools:itemCountはRecyclerViewで使うもので、指定した個数分のアイテムをプレビューで表示させます
実際のデータとは異なるので注意です
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:itemCount="3" />
開発時にビルドせずプレビューで確認できるので、便利な機能です
ここまで個人的に使うものを羅列しましたが、ツール属性はまだまだあります
公式ドキュメントのリンクを参照に載せておくので、一度見てみてください