gpt4 book ai didi

当我将 Activity 属性 "android:windowIsFloating"设置为 true 时,Android ConstraintLayout 宽度不正确

转载 作者:行者123 更新时间:2023-11-29 02:28:23 26 4
gpt4 key购买 nike

当我使用名为 Match Constraints 的“0dp”时,它没有正确测量宽度。它只测量第一个 TextView 的宽度。

我的 Activity 风格:

<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.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”属性的 Activity 实现的。

我该如何解决?

最佳答案

在您的样式中,为对话框纵横比大小和 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;

关于当我将 Activity 属性 "android:windowIsFloating"设置为 true 时,Android ConstraintLayout 宽度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50939337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com