Android ConstraintLayout宽度为';设置“活动”属性时不正确;安卓:windowIsFloating“;真如

Android ConstraintLayout宽度为';设置“活动”属性时不正确;安卓:windowIsFloating“;真如,android,Android,当我使用名为“匹配约束”的“0dp”时,它无法正确测量宽度。它仅测量第一个TextView的宽度 我的活动风格: <style name="MyDialogStyle2" parent="AppTheme"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowFrame">@null&l

当我使用名为“匹配约束”的“0dp”时,它无法正确测量宽度。它仅测量第一个TextView的宽度

我的活动风格:

<style name="MyDialogStyle2"  parent="AppTheme">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowFrame">@null</item>
    <item name="android:windowNoTitle">true</item>        
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:backgroundDimEnabled">true</item>
    <item name="android:layout_width">match_parent</item>
</style>

@android:彩色/透明
@空的
真的        
真的
真的
@空的
@android:style/Animation.Dialog
真的
匹配父项
我的假期:

<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/white"
android:paddingBottom="18dp">

<android.support.constraint.Guideline
    android:id="@+id/guideline_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_percent="0.3" />

<TextView
    android:id="@+id/searchTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="16dp"
    android:text="@string/search_condition_title"
    android:textColor="@color/font_color"
    android:textStyle="bold" />


<TextView
    android:id="@+id/searchDispatchStartTimeTitle"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:layout_marginTop="30dp"
    android:gravity="start"
    android:paddingBottom="10dp"
    android:text="@string/search_condition_dispatch_time"
    android:textColor="@color/font_color"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="@id/guideline_1"
    app:layout_constraintTop_toBottomOf="@id/searchTitle" />

<TextView
    android:id="@+id/resetStartTime"
    android:layout_width="28dp"
    android:layout_height="20dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="25px"
    android:background="@mipmap/reset"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="@id/searchDispatchStartTimeTitle" />

<EditText
    android:id="@+id/searchDispatchStartTime"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginRight="5dp"
    android:background="@drawable/textarea_shape"
    android:focusable="false"
    android:hint="@string/search_condition_dispatch_time_hint"
    android:textColor="@color/font_color"
    app:layout_constraintLeft_toRightOf="@id/guideline_1"
    app:layout_constraintRight_toLeftOf="@id/resetStartTime"        
    app:layout_constraintTop_toTopOf="@id/searchDispatchStartTimeTitle" />
</android.support.constraint.ConstraintLayout>

我想要完成的是制作一个对话框来显示一些输入控件,但是当前项目的对话框是由活动实现的,这些活动具有一个值为true的“android:windowIsFloating”属性


如何修复它?

在您的样式中,为对话框纵横比大小和
windowFullScreen添加属性

示例

<style name="MyDialogStyle2" parent="AppTheme.NoActionBar">
    <item name="android:windowMinWidthMajor">85%</item>
    <item name="android:windowMinWidthMinor">85%</item>
    <item name="android:windowFullscreen">true</item>
    .....
</style>

@我很高兴能帮助你
Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width = (int) (display.getWidth() * 0.7); 
int height = (int) (display.getHeight() * 0.9);  
getWindow().getAttributes().width = width;
getWindow().getAttributes().height = height;