标签: android-constraintlayout

窗口软输入模式ConstraintLayout

之前软输入模式没有问题,但是在包含之后ConstraintLayout,当键盘出现时,片段的内容不会向上移动.

表现

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.pinspb.pinsupport">

    <uses-feature
        android:name="android.software.leanback"
        android:required="false" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <permission
        android:name="ru.pinspb.pinsupport.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

    <uses-permission android:name="ru.pinspb.pinsupport.permission.C2D_MESSAGE" />
    <uses-permission android:name="android.permission.READ_PROFILE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />

    <application
        android:name=".PinApp"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme.NoActionBar">
        <activity
            android:name=".auth.ui.HomeActivity"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".front.ui.FrontActivity"
            android:launchMode="singleTop" />
        <activity
            android:name=".chats.ui.InitChatActivity"
            android:launchMode="singleTop"
            android:windowSoftInputMode="stateHidden" />
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

分段

public …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-constraintlayout

15
推荐指数
3
解决办法
1万
查看次数

为什么Android Studio正在删除和/或更改layout_margin*约束?

我正在使用android.support.constraint.ConstraintLayout布局简单卡片的内容视图.

我每次都会在以下情况下随机更改XML:

  • 我切换到Android Studio的布局编辑器Design选项卡
  • 或者当我Preview打开一个窗格时(在这种情况下,在我的更改期间更改会发生更改).

随机变化包括:

  • 删除我手动定义的布局边距(例如layout_marginEnd)
  • 更改我手动输入的边距值的值
  • 添加tools:layout_editor_absoluteX

问题:

  • 其他人都有这个Android Studio的功能吗?
  • 如何关闭这个"功能",所以我的布局不会被破坏?
  • 在哪里向Google或JetBrains报告此错误?

请看一下这个文件diff,它是在切换到Design选项卡时自动生成的: 在布局XML文件中自动更改diff

PS.:我的Android Studio版本是2.2.3; 我在macOS Sierra上运行它.

更新#1

正如所建议的,在制作之后layout_height="match_parent",我不经常修改,但是当我在Layout Design'er中编辑布局时,我的XML仍然搞砸了: 自动更改#2 这次我想layout_marginTop通过设计UI 进行设置(所选行是我想要添加的),但我还得到了其他不需要的更改:

  • layout_marginStart 删除;
  • app:layout_constraintBottom_toBottomOf引用的ID有一个前缀"+"符号,这意味着,这些ID是新声明的,所以当我使用Goto declaration功能时,我将不得不从列表中选择它 - 而不是所需的行为.
  • tools:layout_editor_absoluteX得到补充.我可以忽略它,但仍然 - 不是我想要发生的事情.

android android-studio android-constraintlayout android-layout-editor

15
推荐指数
1
解决办法
2877
查看次数

android - 布局看起来在一些设备中搞砸了

布局时我遇到了一个非常奇怪的问题.它看起来像在eclipse XML编辑器和我的三星galaxy中设计但它在我的旧手机xperia x10 mini中搞砸了.我只能假设这也会在其他设备中出现.

如果有人可以帮忙解决这个问题,我将不胜感激.

以下是两个屏幕截图和XML代码.

它在eclipse布局编辑器和我的三星galaxy S4 mini中看起来如何

在此输入图像描述

它在Sony xperia x10 mini中的外观如何

在此输入图像描述

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:layout_height="wrap_content" > 

    <FrameLayout
        android:layout_marginTop="7dp"
        android:layout_gravity="center" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <View  android:layout_marginTop="19dp"  android:layout_marginLeft="19dp"  android:layout_height="249dp" android:layout_width="2dp"    android:background="#B2CFEF"/>
        <View  android:layout_marginTop="19dp"  android:layout_marginLeft="189dp" android:layout_height="249dp" android:layout_width="2dp"    android:background="#B2CFEF"/>
        <View  android:layout_marginTop="18dp"  android:layout_marginLeft="20dp"  android:layout_height="2dp"   android:layout_width="170dp"  android:background="#B2CFEF"/>
        <View  android:layout_marginTop="267dp" android:layout_marginLeft="19dp"  android:layout_height="2dp"   android:layout_width="171dp"  android:background="#B2CFEF"/>

        <ImageView  style="@style/ta_img"  android:id="@+id/ta_lu"                                     android:layout_marginTop="52dp"   />
        <ImageView  style="@style/ta_img"  android:id="@+id/ta_lc"                                     android:layout_marginTop="124dp"  />
        <ImageView  style="@style/ta_img"  android:id="@+id/ta_ld"                                     android:layout_marginTop="197dp"  />

        <ImageView  style="@style/ta_img"  android:id="@+id/ta_ru"  android:layout_marginLeft="170dp"  android:layout_marginTop="52dp"   />
        <ImageView  style="@style/ta_img"  android:id="@+id/ta_rc"  android:layout_marginLeft="170dp"  android:layout_marginTop="124dp"  />
        <ImageView …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-linearlayout android-framelayout android-constraintlayout

14
推荐指数
2
解决办法
2438
查看次数

在ConstraintLayout中对齐包含链的一组视图

我在ConstraintLayout中有三个视图,并希望像这样对齐:

在此输入图像描述

现在,视图BC形成垂直链,A相对于链居中.但是如何将整个组对齐在父级中心?请注意,View C可能是GONE.

android android-layout android-constraintlayout

14
推荐指数
1
解决办法
2424
查看次数

如何以编程方式修改约束布局?

我有一个如下的观点:

 <org.rayanmehr.atlas.shared.customview.CustomTextView
    android:id="@+id/tvDownVoteCount"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="6dp"
    app:layout_constraintVertical_bias="0"
    app:layout_constraintTop_toBottomOf="@+id/anchorHelper"
    app:layout_constraintLeft_toRightOf="@+id/tvDownVoteIcon"
    app:layout_constraintBottom_toBottomOf="@+id/imgComment"
    />
Run Code Online (Sandbox Code Playgroud)

如何在app:layout_constraintVertical_bias没有在我的活动中再次设置整个属性集的情况下以编程方式修改值或任何其他约束属性?

android android-constraintlayout

14
推荐指数
3
解决办法
7093
查看次数

约束布局布局崩溃:约束布局的所有子项应具有使用约束集的id

更新后 com.android.support.constraint:constraint-layout:1.1.0

约束布局崩溃说:

约束布局的所有子项都应该具有使用约束集的id

我已经为所有视图设置了ID,即使它崩溃了.

java.lang.RuntimeException: All children of ConstraintLayout must have ids to use ConstraintSet at android.support.constraint.ConstraintSet.clone(ConstraintSet.java:687) at com.zoho.notebook.views.SettingsViewNavBar.showNoteSettingsView(SettingsViewNavBar.java:594) at com.zoho.notebook.views.SettingsViewNavBar.onClick(SettingsViewNavBar.java:303)
Run Code Online (Sandbox Code Playgroud)

此问题仅发生在平板电脑设备上.

android android-constraintlayout

14
推荐指数
3
解决办法
6137
查看次数

将 androidx.constraintlayout:constraintlayout lib 更新到 2.0.2 版本后得到 crash isRtl() null 引用

Attempt to invoke virtual method 
'boolean androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer.isRtl()' 
on a null object reference.
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

谁遇到过类似的问题?更新前一切正常。

android kotlin android-constraintlayout

14
推荐指数
1
解决办法
807
查看次数

ConstraintLayout与RelativeLayout和CardView - 缓存和内存空间

我开发了一个应用程序,可以在移动设备上从json检索数据到本地数据库,并使用本地数据库显示它RecyclerView,我的容器布局如下所示:

<android.support.v7.widget.CardView 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="wrap_content"
android:clickable="true"
android:focusable="true"
>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="end"
    android:layout_gravity="end"
    android:id="@+id/detailContainerLayout"
    android:baselineAligned="true"
    android:background="@drawable/border_bottom"
    >

<TextView
    android:id="@+id/article_title"
    style="@style/TextAppearance.AppCompat.Subhead"
    android:layout_width="220dp"
    android:layout_height="wrap_content"
    android:paddingLeft="5dp"
    android:paddingTop="2dp"
    android:layout_marginRight="9dp"
    android:layout_marginLeft="4dp"
    android:textColor="@color/buttons_background"
    android:fontFamily="sans-serif-condensed"
    android:maxLines="2"
    android:textSize="@dimen/text_main"
    android:layout_gravity="end"
    android:gravity="start"
    android:layoutDirection="rtl"/>

    <TextView
        android:id="@+id/article_date"
        style="@style/TextAppearance.AppCompat.Body1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="8dp"
        android:paddingRight="9dp"
        android:textColor="@color/textColor"
        android:maxLines="1"
        android:layout_gravity="end"
        android:gravity="end"
        android:textSize="@dimen/date_size"
        android:layout_marginTop="8dp"
        />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:layout_gravity="center_horizontal|bottom"
        android:gravity="center_horizontal|bottom"
        android:layout_marginTop="10dp"
        >


        <TextView
            android:id="@+id/article_place"
            style="@style/TextAppearance.AppCompat.Body1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColor="@color/textColor"
            android:layout_gravity="start|bottom"
            android:gravity="start|bottom"
            android:layout_weight="1.1"

            android:maxLines="1"
            android:fontFamily="sans-serif"
            android:paddingBottom="5dp"
            android:layoutDirection="rtl"
            android:layout_marginRight="3dp"
            />

        <TextView
            android:id="@+id/article_placeIcon"
            style="@style/TextAppearance.AppCompat.Body1"
            android:layout_width="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-relativelayout android-constraintlayout

13
推荐指数
1
解决办法
1480
查看次数

如何将AdView放在ConstraintLayout的底部和下方?

我正在尝试从RelativeLayout迁移到ConstraintLayout,但我在将AdMob AdView添加到底部以及其上方的其余内容时遇到问题.例如,使用RelativeLayout就是这么简单.您只需要放置android:layout_alignParentBottom="true"AdView和android:layout_above="@+id/adView"包含内容的视图.

我试图了解如何使用ConstraintLayout而不是RelativeLayout将此示例代码和这两行代码迁移到等效代码.

拜托,有人可以帮我解决这个问题吗?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    android:background="@android:color/transparent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/adView"/>

    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="5dp"
        ads:adSize="BANNER"
        ads:adUnitId="@string/ad_id_banner">
    </com.google.android.gms.ads.AdView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

app:layout_constraintBottom_toTopOf="@+id/adView"在adView上面和adView app:layout_constraintBottom_toBottomOf="parent"上测试了我想要的东西,但它不起作用,因为这些东西不在它后面的adView之上.此外,adView不会居中.这非常令人沮丧.

android android-layout android-relativelayout android-constraintlayout

13
推荐指数
1
解决办法
4836
查看次数

在Constraint布局中编辑文本滚动条问题

我只是在编辑文本的高度达到布局高度的末尾时,我试图在编辑文本中显示滚动条.如果我输入/添加空格,但是当我的文本到达编辑文本宽度的末尾时,它会导致问题.一旦我的文本到达我的编辑文本宽度的末尾,它就开始向我显示滚动条,而当我到达屏幕的(高度)结束时它应该显示.

请告知我如何解决此问题.请查看附图和代码以供参考.在此输入图像描述

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/editFeedback"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:bufferType="spannable"
        android:gravity="top"
        android:hint="Some text"
        android:inputType="textCapSentences|textMultiLine"
        android:minHeight="120dp"
        android:overScrollMode="ifContentScrolls"
        android:scrollbarStyle="insideInset"
        android:scrollbars="vertical"
        android:selectAllOnFocus="true"
        android:textIsSelectable="true"
        android:textSize="16sp"
        app:layout_constraintBottom_toTopOf="@+id/buttonSend"
        app:layout_constraintEnd_toEndOf="@id/guidelineEnd"
        app:layout_constraintHeight_default="wrap"
        app:layout_constraintStart_toStartOf="@id/guidelineStart"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0"
        app:layout_constraintVertical_chainStyle="packed"
        tools:text="" />

    <Button
        android:id="@+id/buttonSend"
        style="@style/Widget.AppCompat.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end"
        android:text="Send"
        android:textAllCaps="false"
        app:layout_constraintBottom_toBottomOf="@+id/barrierEnd"
        app:layout_constraintEnd_toEndOf="@id/guidelineEnd"
        app:layout_constraintTop_toBottomOf="@+id/editFeedback" />

    <TextView
        android:id="@+id/Footer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="start"
        android:layout_marginBottom="100dp"
        android:text="This is a footer"
        android:textSize="15sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <android.support.constraint.Guideline
        android:id="@+id/guidelineStart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_begin="8dp" />

    <android.support.constraint.Guideline
        android:id="@+id/guidelineEnd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_end="8dp" />

    <android.support.constraint.Barrier
        android:id="@+id/barrierEnd"
        android:layout_width="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android android-edittext android-constraintlayout

13
推荐指数
1
解决办法
600
查看次数