私はあなたが問題で私を助けることができることを願っています。私はそれをグーグルで検索し、ここのトピックを調べましたが、答えを見つけることができませんでした。
最近、レイアウトをConstraintLayouts
に変更しましたが、これはこれまでのところうまく機能しています。しかし、私の問題は、DialogFragments
がLinearLayout
を表示していて、それをConstraintLayout
に変更すると、色あせたオーバーレイのみが表示され、レイアウト内の要素は表示されないことです。幅と高さを100dp
のようにハードコーディングすると、その領域が表示されます。 match_parent
または他の組み合わせを試してみると、同じ問題が当てはまります。また、高さと幅をデバイスの高さと幅に設定してみましたが、それでもうまくいきませんでした。
CreateWeddingMetadataFragmentのonCreateViewには、次のものがあります。
createButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "Show message dialog");
FragmentManager fm = getFragmentManager();
CreateWeddingMetadataDialogFragment welcomeMessageDialog = new CreateWeddingMetadataDialogFragment();
welcomeMessageDialog.show(fm, "metadate_fragment_dialog");
welcomeMessageDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
}
});
私のCreateWeddingMetadataFragmentDialogには、次のものがあります。
public class CreateWeddingMetadataDialogFragment extends DialogFragment{
private static final String TAG = CreateWeddingMetadataDialogFragment.class.getSimpleName();
public Button setupNow, setupLater;
public TextView mTest;
public ConstraintLayout parentLayout;
private DialogInterface.OnDismissListener onDismissListener;
public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
this.onDismissListener = onDismissListener;
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
if (onDismissListener != null) {
onDismissListener.onDismiss(dialog);
}
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "I was called");
}
public CreateWeddingMetadataDialogFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.create_welcome_message_view, container);
setupNow = (Button) view.findViewById(R.id.setupNowButton);
setupLater = (Button) view.findViewById(R.id.setupLaterButton);
mTest = (TextView) view.findViewById(R.id.welcomeMessageTitle);
parentLayout = (ConstraintLayout) view.findViewById(R.id.clWelcomeMessage);
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int width = displayMetrics.widthPixels;
int height = displayMetrics.heightPixels;
parentLayout.setMinimumWidth(width);
parentLayout.setMinimumHeight(height);
mTest.setText("Test");
Log.d(TAG, "I was called onCreateView" + mTest);
setupNow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Go to metadate page (Hide this dialog)
}
});
setupLater.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Go to signin page and create the wedding
}
});
return view;
}
}
それは、デバイスサイズに設定しようとしている私の現在の試みです。
そして、これがcreate_welcome_message_viewです。
<?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"
xmlns:tools="http://schemas.Android.com/tools"
Android:orientation="vertical"
Android:id="@+id/clWelcomeMessage">
<Button
Android:text="DET GØR JEG SENERE"
Android:layout_width="0dp"
Android:layout_height="0dp"
Android:id="@+id/setupLaterButton"
app:layout_constraintTop_toTopOf="@+id/guideline19"
app:layout_constraintBottom_toTopOf="@+id/guideline20"
Android:layout_marginEnd="16dp"
app:layout_constraintRight_toRightOf="parent"
Android:layout_marginRight="16dp"
Android:layout_marginStart="16dp"
app:layout_constraintLeft_toLeftOf="parent"
Android:layout_marginLeft="16dp"
Android:background="@drawable/border"
Android:layout_marginTop="2dp"
Android:textColor="@color/colorPrimaryDark"/>
<Button
Android:text="JEG VIL OPSÆTTE DEN NU"
Android:layout_width="0dp"
Android:layout_height="0dp"
Android:id="@+id/setupNowButton"
app:layout_constraintTop_toTopOf="@+id/guideline12"
app:layout_constraintBottom_toTopOf="@+id/guideline19"
Android:layout_marginEnd="16dp"
app:layout_constraintRight_toRightOf="parent"
Android:layout_marginRight="16dp"
Android:layout_marginStart="16dp"
app:layout_constraintLeft_toLeftOf="parent"
Android:layout_marginLeft="16dp"
Android:background="@color/colorPrimaryDark"
Android:layout_marginBottom="2dp"
Android:textColor="@color/White"/>
<TextView
Android:text="EN PERSONLIG VELKOMST"
Android:layout_width="0dp"
Android:layout_height="0dp"
Android:id="@+id/welcomeMessageTitle"
Android:layout_marginTop="16dp"
app:layout_constraintTop_toTopOf="parent"
Android:layout_marginEnd="32dp"
app:layout_constraintRight_toRightOf="parent"
Android:layout_marginRight="32dp"
Android:layout_marginStart="32dp"
app:layout_constraintLeft_toLeftOf="parent"
Android:layout_marginLeft="32dp"
app:layout_constraintBottom_toTopOf="@+id/textView5"
Android:layout_marginBottom="8dp"
Android:textAlignment="center"
Android:textSize="16sp"/>
<TextView
Android:text="Nu skal I definere den velkomst, som jeres gæster får i appen. I kan skrive navnet på brylluppet, en hlsen og har mulighed at vælge et coverbillede"
Android:layout_width="0dp"
Android:layout_height="0dp"
Android:id="@+id/textView5"
app:layout_constraintTop_toTopOf="@+id/guideline14"
Android:layout_marginEnd="32dp"
app:layout_constraintRight_toRightOf="parent"
Android:layout_marginRight="32dp"
app:layout_constraintBottom_toTopOf="@+id/textView6"
Android:layout_marginBottom="8dp"
Android:layout_marginStart="32dp"
app:layout_constraintLeft_toLeftOf="parent"
Android:layout_marginLeft="32dp"
Android:textAlignment="center"/>
<Android.support.constraint.Guideline
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/guideline12"
Android:orientation="horizontal"
tools:layout_editor_absoluteY="204dp"
tools:layout_editor_absoluteX="0dp"
app:layout_constraintGuide_percent="0.4"/>
<TextView
Android:text="Du vil altid kunne ændre din opsætning af velkomsten i din brugerprofil."
Android:layout_width="0dp"
Android:layout_height="0dp"
Android:id="@+id/textView6"
app:layout_constraintBottom_toTopOf="@+id/guideline12"
Android:layout_marginBottom="8dp"
app:layout_constraintTop_toTopOf="@+id/guideline15"
Android:layout_marginStart="32dp"
app:layout_constraintLeft_toLeftOf="parent"
Android:layout_marginLeft="32dp"
Android:layout_marginEnd="32dp"
app:layout_constraintRight_toRightOf="parent"
Android:layout_marginRight="32dp"
Android:textAlignment="center"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="1.0"/>
<Android.support.constraint.Guideline
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/guideline14"
Android:orientation="horizontal"
tools:layout_editor_absoluteY="51dp"
tools:layout_editor_absoluteX="0dp"
app:layout_constraintGuide_percent="0.1"/>
<Android.support.constraint.Guideline
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/guideline15"
Android:orientation="horizontal"
tools:layout_editor_absoluteY="153dp"
tools:layout_editor_absoluteX="0dp"
app:layout_constraintGuide_percent="0.3"/>
<Android.support.constraint.Guideline
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/guideline19"
Android:orientation="horizontal"
tools:layout_editor_absoluteY="255dp"
tools:layout_editor_absoluteX="0dp"
app:layout_constraintGuide_percent="0.5"/>
<Android.support.constraint.Guideline
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/guideline20"
Android:orientation="horizontal"
tools:layout_editor_absoluteY="305dp"
tools:layout_editor_absoluteX="0dp"
app:layout_constraintGuide_percent="0.6"/>
</Android.support.constraint.ConstraintLayout>
追加情報が必要な場合はお知らせください。事前に感謝します。
これは正常に機能します-チェックアウト
1)視覚化されたXMLでも、可能な場合はアイテムを順番に配置することをお勧めします。後で簡単に理解するためだけに。 2)他のすべての要素が他の要素の高さと幅に制約されており、ほとんどの場合、高さと幅が0になっているように見えます。 LayoutParamsの0dpとwrap_contentに注意してください。 3)垂直バイアスもサポートします。
<?xml version="1.0" encoding="utf-8"?>
<Android.support.constraint.ConstraintLayout
Android:id="@+id/clWelcomeMessage"
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="wrap_content"
Android:orientation="vertical">
<Android.support.constraint.Guideline
Android:id="@+id/guideline_ver_16"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="vertical"
app:layout_constraintGuide_begin="@dimen/sixteenDP"/>
<Android.support.constraint.Guideline
Android:id="@+id/guideline_ver_end_16"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="vertical"
app:layout_constraintGuide_end="@dimen/sixteenDP"/>
<TextView
Android:id="@+id/welcomeMessageTitle"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginBottom="8dp"
Android:layout_marginEnd="32dp"
Android:layout_marginLeft="32dp"
Android:layout_marginRight="32dp"
Android:layout_marginStart="32dp"
Android:layout_marginTop="16dp"
Android:text="EN PERSONLIG VELKOMST"
Android:textAlignment="center"
Android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@+id/textView5"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<Android.support.constraint.Guideline
Android:id="@+id/guideline1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
app:layout_constraintGuide_percent="0.1"/>
<Android.support.constraint.Guideline
Android:id="@+id/guideline2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
app:layout_constraintGuide_percent="0.2"/>
<TextView
Android:id="@+id/textView5"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_marginBottom="8dp"
Android:text="Nu skal I definere den velkomst, som jeres gæster får i
appen.
I kan skrive navnet på brylluppet, en hlsen og har mulighed at vælge et
coverbillede"
Android:textAlignment="center"
app:layout_constraintEnd_toEndOf="@+id/guideline_ver_end_16"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@+id/guideline_ver_16"
app:layout_constraintTop_toBottomOf="@+id/guideline2"/>
<TextView
Android:id="@+id/textView6"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_marginBottom="8dp"
Android:layout_marginEnd="16dp"
Android:layout_marginLeft="16dp"
Android:layout_marginRight="16dp"
Android:layout_marginStart="16dp"
Android:layout_marginTop="8dp"
Android:text="Du vil altid kunne ændre din opsætning af velkomsten i din
brugerprofil."
Android:textAlignment="center"
app:layout_constraintBottom_toTopOf="@+id/setupNowButton"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="@+id/guideline_ver_16"
app:layout_constraintRight_toRightOf="@+id/guideline_ver_end_16"
app:layout_constraintTop_toBottomOf="@+id/textView5"/>
<Button
Android:id="@+id/setupNowButton"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_marginBottom="8dp"
Android:layout_marginEnd="16dp"
Android:layout_marginLeft="16dp"
Android:layout_marginRight="16dp"
Android:layout_marginStart="16dp"
Android:layout_marginTop="8dp"
Android:background="@color/colorPrimaryDark"
Android:text="JEG VIL OPSÆTTE DEN NU"
Android:textColor="@color/White"
app:layout_constraintBottom_toTopOf="@+id/setupLaterButton"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView6"
app:layout_constraintVertical_bias="1.0"/>
<Android.support.constraint.Guideline
Android:id="@+id/guideline6"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
app:layout_constraintGuide_percent="0.6"/>
<Button
Android:id="@+id/setupLaterButton"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_marginBottom="8dp"
Android:layout_marginEnd="16dp"
Android:layout_marginLeft="16dp"
Android:layout_marginRight="16dp"
Android:layout_marginStart="16dp"
Android:text="DET GØR JEG SENERE"
Android:background="@drawable/border"
Android:textColor="@color/colorPrimaryDark"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline6"
app:layout_constraintVertical_bias="1.0"/>
</Android.support.constraint.ConstraintLayout>
また、app:layout_constraintWidth_default="wrap"
(widthを0dpに設定)。設定されている場合、ウィジェットはwrap_contentを使用する場合と同じサイズになりますが、制約によって制限されます(つまり、ウィジェットは制約を超えて拡張されません)。 サポートリソース