假设我有带有运动布局的简单 UI:
// 活动_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.motion.widget.MotionLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/motion"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutDescription="@transition/motion_scene"
app:showPaths="true">
<View
android:id="@+id/view"
android:layout_width="0dp"
android:layout_height="250dp"
android:background="#CCAA33"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
android:progressTint="#3366CC"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>
</androidx.constraintlayout.motion.widget.MotionLayout>
Run Code Online (Sandbox Code Playgroud)
带有运动布局场景:
<?xml version="1.0" encoding="utf-8"?>
<MotionScene
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<Transition
app:constraintSetStart="@id/collapsed"
app:constraintSetEnd="@id/expanded"
app:duration="1000">
<OnSwipe
app:touchAnchorId="@id/view"
app:touchAnchorSide="top"
app:dragDirection="dragUp" />
</Transition>
<ConstraintSet android:id="@+id/collapsed">
</ConstraintSet>
<ConstraintSet android:id="@+id/expanded">
</ConstraintSet>
</MotionScene>
Run Code Online (Sandbox Code Playgroud)
(它没有做任何事情,因为我为了演示目的剥离了所有内容)。
现在,如果我尝试隐藏进度条(让我们说在视图的点击):
//主活动.kt
import android.content.res.ColorStateList
import android.graphics.Color
import android.os.Bundle
import android.view.View
import android.widget.ProgressBar
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() { …Run Code Online (Sandbox Code Playgroud) 我正在使用最新的材料组件 - 1.1.0-beta01。
当 ExtendedFloatingActionButton 展开时,其高度也会降低。
以下是 xml 布局的外观:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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:id="@+id/main_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="56dp"
android:text="Text"
android:textColor="#02220D"
android:backgroundTint="#F2C203"
style="@style/Widget.MaterialComponents.ExtendedFloatingActionButton"
android:textSize="15sp"
android:fontFamily="sans-serif-medium"
android:textStyle="normal"
android:layout_marginBottom="16dp"
android:layout_marginEnd="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:iconTint="#02220D"
app:icon="@drawable/ic_camera"
app:iconPadding="10dp"
android:insetLeft="0dp"
android:insetBottom="0dp"
android:insetTop="0dp"
android:insetRight="0dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
我试图设置最小和最大高度,但没有用。知道如何在按钮展开和收缩时达到相同的高度吗?
谢谢。
android android-button floating-action-button material-components material-components-android
我开始学习Git,我遇到了一个问题.
假设有一个主存储库和两个分支.
主
- > fork1 - >我的本地克隆
- > fork2
我正在使用一个fork,我可以从master存储库中提取更改并将它们与我自己的存储库合并.现在,假设在第二个分支中的一个分支中进行了一些更改.我如何拉动它们并合并到我的仓库?
fork2 - >与我的本地克隆合并 - > push to fork1
另外,我可以在第二个分支中从远程分支合并特定的提交(通过提交哈希)以及如何?
谢谢你的回答.
假设有一个抽象类BaseClass ...
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable(with = PolymorphicSerializer::class)
abstract class BaseClass {
@SerialName("bid")
var baseId: String? = null
}
Run Code Online (Sandbox Code Playgroud)
...扩展它的类ExtendedClass ...
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
class ExtendedClass
(@SerialName("eid")
var newId: String? = null
) : BaseClass()
Run Code Online (Sandbox Code Playgroud)
...和多态序列化器
import kotlinx.serialization.DeserializationStrategy
import kotlinx.serialization.json.JsonContentPolymorphicSerializer
import kotlinx.serialization.json.JsonElement
object PolymorphicSerializer : JsonContentPolymorphicSerializer<BaseClass>(BaseClass::class) {
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<out BaseClass> {
return ExtendedClass.serializer()
}
}
Run Code Online (Sandbox Code Playgroud)
使用PolymorphicSerializer是因为 JSON 可以反序列化为基于某些属性扩展BaseClass 的不同类(为了简单起见,我只使用了ExtendedClass.serializer())
现在,如果我们尝试将通用 JSON 反序列化为ExtendedClass ...
class DeserializationTest …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现这样的布局:
我附上了示例项目:https : //drive.google.com/file/d/1jEKOONMWN3MblLN1EmePsWTWNCNQVfN-/view?usp=sharing
我遇到的问题是第二个视图寻呼机对触摸事件没有反应。
理想情况下,如果用户在选择“两个”选项卡时向右滑动,则第二个视图寻呼机将在用户滑动时更改页面 - 从图片中,如果选择“第四”,则向右滑动将选择“第五”,向左滑动将选择“第三”。从“第三个”向左滑动将导致第一个查看页面选择“一个”。
有没有办法用视图寻呼机 2 做到这一点?
谢谢您的回答。