小编pis*_*ffe的帖子

ConstraintLayout layout_constraintDimensionRatio不起作用

我使用了constraintLayout和layout_constraintDimensionRatio ="1:1"(宽度为warp_content,高度为0dp(match_constraint))

因此,我预计宽度和高度为1:1但不起作用.

怎么了??

我附上了代码和截图.

<?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">

    <TextView
        android:id="@+id/t1"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:background="@android:color/holo_blue_bright"
        android:gravity="center"
        android:text="Hello World!11"
        app:layout_constraintDimensionRatio="1:1" />

</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

截图

我引用Android开发者网站关于Constraintlayout. https://developer.android.com/reference/android/support/constraint/ConstraintLayout.html#DimensionConstraints

"比率::您还可以将窗口小部件的一个维度定义为另一个维度的比率.为此,您需要将至少一个约束维度设置为0dp(即MATCH_CONSTRAINT),并设置属性layout_constraintDimentionRatio到给定的比率.例如:

     <Button android:layout_width="wrap_content"
               android:layout_height="0dp"
               app:layout_constraintDimensionRatio="1:1" />
Run Code Online (Sandbox Code Playgroud)

将按钮的高度设置为与其宽度相同."

- >但我没有工作.

android android-constraintlayout

16
推荐指数
2
解决办法
1万
查看次数

两个可观察量指向相同的参考

我编写了以下示例并检查了对象a和b的observerA变量的值.

class Test {
    val observerA = Observer<String>{}
}
Run Code Online (Sandbox Code Playgroud)

校验

val a = Test()
val b = Test()
AppLogger.LOGE("[A]ObserverA: ${a.observerA} [B]ObserverA: ${b.observerA}")
Run Code Online (Sandbox Code Playgroud)

结果

[A]ObserverA: com.test.Test$observerA$1@e3d8a1b  
[B]ObserverA: com.test.Test$observerA$1@e3d8a1b
Run Code Online (Sandbox Code Playgroud)

我的猜测是a.observerA和a.observerA应该是不同的,但它们引用相同的对象.

当我在下面编写observerA时,我看到创建了不同的对象.我不知道为什么会出现这种差异.

val observerA = object : Observer<String>{
    override fun onChanged(t: String?) {

    }
}
Run Code Online (Sandbox Code Playgroud)

java android kotlin

2
推荐指数
1
解决办法
74
查看次数

如果文字中包含表情符号,则范围为零

文字“欢迎我的申请.. ??” NSRangeRange测试期间没有任何意义。如果?? 包含在内,Range作为返回nil,我想知道为什么。

func testA() {
        let testStr = "Welcome my application..??"

        let range = NSRange(location: 0, length: testStr.count)
        let wrapRange = Range(range, in: testStr)

        let testStrB = "Welcome my application.."

        let rangeB = NSRange(location: 0, length: testStrB.count)
        let wrapRangeB = Range(rangeB, in: testStrB)

        print("wrapRange: \(wrapRange) wrapRangeB: \(wrapRangeB)")
}
Run Code Online (Sandbox Code Playgroud)

结果:

wrapRange: nil wrapRangeB: Optional(Range(Swift.String.Index(_rawBits: 1)..<Swift.String.Index(_rawBits: 1572864)))
Run Code Online (Sandbox Code Playgroud)

swift

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

标签 统计

android ×2

android-constraintlayout ×1

java ×1

kotlin ×1

swift ×1