私はかなり単純なレイアウトを持っています:画面全体を埋めるConstraintLayout
と、上部にCardView
の半分とその半分の上にあるImageView
を持つ1つの大きなCardView
(実際には半分ではありませんが、要点はわかります)。
ただし、2つの問題があります。ImageView
が親の左側に固定され、水平方向に中央に配置する方法がわかりません。Googleで見つけることができるのは、複数の要素のチェーンだけですが、1つを中央に配置したいだけです。
レイアウトエディタは私にとって非常にうまく機能しません。私の最初の不満は、私が親に制約を設けることができないようだということです。次に、「親の中央に配置」というボタンを押して、ImageView
を親の水平方向の中央に配置してみました。これにより、CardView
の幅が広がり、ImageView
にはまったく影響しません。
私がそれにいる間、どうすればImageView
の上にCardView
をzオーダーできますか?
ここにレイアウトがあります:
<?xml version="1.0" encoding="utf-8"?>
<Android.support.constraint.ConstraintLayout xmlns: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"
Android:background="@color/colorPrimaryDark">
<Android.support.v7.widget.CardView
Android:layout_width="0dp"
Android:layout_height="0dp"
Android:layout_marginBottom="32dp"
Android:layout_marginEnd="32dp"
Android:layout_marginStart="32dp"
Android:layout_marginTop="160dp"
app:cardCornerRadius="12dp"
app:cardElevation="32dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent">
</Android.support.v7.widget.CardView>
<ImageView
Android:layout_width="200dp"
Android:layout_height="200dp"
Android:layout_marginTop="40dp"
Android:scaleType="centerCrop"
Android:src="@drawable/re_zero"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
ありがとう!
docs によると:
ビューの両側に制約を追加すると(同じ寸法のビューサイズが「固定」または「コンテンツを折り返す」のいずれか)、ビューはデフォルトで2つのアンカーポイントの中央に配置されます。
ImageView
を中心とした次の制約を追加します。
app:layout_constraintEnd_toEndOf="parent"
また、CardView
よりも高い標高を追加すると、標高がz-indexをオーバーライドするため、z-indexが修正されました。