我更新了SDK版本24,现在Html.fromHtml()已弃用.并且Html类有一个名为flag的额外参数的新方法,但它的最小API是24.
对于较低的API版本,此功能是否有任何替代方案?我不想WebView为此目的使用a .
我有一个这个layoutDescription的动画布局: app:layoutDescription="@xml/scene"
scene.xml
<MotionScene
xmlns:motion="http://schemas.android.com/apk/res-auto">
<Transition
motion:constraintSetStart="@layout/view_home_card_start"
motion:constraintSetEnd="@layout/view_home_card_end"
motion:duration="1000">
<OnSwipe
motion:touchAnchorId="@+id/button"
motion:touchAnchorSide="left"
motion:dragDirection="dragLeft" />
</Transition>
</MotionScene>
Run Code Online (Sandbox Code Playgroud)
我认为xml view_home_card_start和view_home_card_end无关紧要.
如何以编程方式调用此动画?
我正在尝试在我的项目中使用数据绑定库,这是用Kotlin编写的.我正在使用Kotlin v.1.0.2和Gradle插件v.2.12以及绑定编译器.我的build.gradle配置如下:
android {
dataBinding {
enabled = true
}
}
kapt {
generateStubs = true
}
dependencies {
kapt "com.google.dagger:dagger-compiler:2.2"
provided "org.glassfish:javax.annotation:10.0-b28"
kapt "com.android.databinding:compiler:2.12"
}
Run Code Online (Sandbox Code Playgroud)
在我的Fragment布局中,我<data>使用一些变量声明了块:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<import type="android.view.View"/>
<import type="com.xxx.ui.AuthorizationPresenter"/>
<import type="com.xxx.entity.AuthProvider"/>
<variable
name="model"
type="com.xxx.ui.authorization.Model"/>
<variable
name="presenter"
type="com.xxx.ui.authorization.AuthorizationPresenter"/>
</data>
<FrameLayout
... />
</layout>
Run Code Online (Sandbox Code Playgroud)
然后在我的AuthorizationFragment.kt课上我设置这些变量:
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
binding = FragmentAuthorizationBinding.inflate(inflater)
binding?.presenter = presenter
binding?.model = Model()
binding?.addOnRebindCallback(object : OnRebindCallback<FragmentAuthorizationBinding>() {
override fun …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用新的ConstraintLayout.我为RecyclerView的行做了布局.它有ConstraintLayout作为根元素,其宽度设置为match_parent,当我运行我的应用程序时,它按预期呈现
它工作得很好,直到我把数据绑定部分放在我的XML中,而今后的根元素是layout包装ConstraintLayout的标签,它导致ConstraintLayout行为的一些不可预测的变化 - 它的宽度从此不会呈现为match_parent,它只需要显示的一小部分宽度,虽然它仍然设置为match_parentXML.我也尝试将宽度设置为某个固定值,结果相同
我怀疑数据绑定处理器有点在构建过程中处理布局时从ConstrainLayout剥离属性.有没有办法让事情正常运作?我的布局
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View"/>
<variable
name="post"
type=".entity.Post"/>
<variable
name="data"
type=".entity.LinkPostData"/>
</data>
<android.support.constraint.ConstraintLayout
android:id="@+id/constraintLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="16dp">
....
</android.support.constraint.ConstraintLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)
和适配器:
class PostsAdapter(): RecyclerView.Adapter<PostsAdapter.PostItemViewHolder>() {
private val posts: MutableList<Post> = ArrayList()
fun setPosts(domains: List<Post>) {
this.posts.clear()
this.posts.addAll(domains)
notifyDataSetChanged()
}
override fun getItemViewType(position: Int): Int {
return super.getItemViewType(position)
}
override fun onBindViewHolder(holder: PostItemViewHolder?, position: Int) {
val post = posts[position]
holder?.binding?.post = post
holder?.binding?.data = post.data …Run Code Online (Sandbox Code Playgroud) 我正在尝试根据此草图在新的AppCompat库提供的新工具栏小部件中实现自定义布局

所以我试图在工具栏中添加新的Layout组件,并将其重力属性设置为bottom | center_horizontal.但似乎这个属性完全无关紧要,我的子布局总是位于工具栏的垂直中心和汉堡包图标的左侧.

我的XML布局如下所示:
<LinearLayout
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:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="115dp"
android:background="?attr/colorPrimary"
app:titleTextAppearance="@style/title">
<RelativeLayout
android:layout_width="176dp"
android:layout_height="59dp"
android:background="?attr/colorPrimaryDark"
android:gravity="bottom|center_horizontal">
</RelativeLayout>
</android.support.v7.widget.Toolbar>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/container_main"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ListView
android:id="@+id/drawer_menu"
android:layout_width="264dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@android:color/white"
android:choiceMode="singleChoice"
android:divider="?android:colorBackground"
android:dividerHeight="1dp"/>
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
任何想法如何在工具栏中实现子视图的正确对齐?
目前我正在尝试将两个约束布局嵌套在一起。为此,我使用<include/>标签。我看到的是内部约束布局忽略了外部约束布局的每个约束。为了使其更加明显,我在内部约束布局周围绘制了边框:
为了尝试这些东西,我使用了com.android.support.constraint:constraint-layout:1.0.0-alpha3.
我现在的问题是:我做错了什么,还是 alpha 版本的错误?