小编dab*_*248的帖子

TextInputLayout setErrorEnabled不会创建新的TextView对象

我在创建登录表单时发现了一个问题.我在TextInputLayout上显示一些错误并在用户正确填写内容时禁用它们.

错误示例

我设置它

mTextInputLayout.setError("This field is required");
Run Code Online (Sandbox Code Playgroud)

并使用

mTextInputLayout.setError(null);
Run Code Online (Sandbox Code Playgroud)

问题是仍然有空TextView对象的填充,它显示错误消息.所以我试图通过设置完全禁用错误

mTextInputLayout.setErrorEnabled(false);
Run Code Online (Sandbox Code Playgroud)

它工作和看起来很好,但我不能再设置它.打电话的时候

mTextInputLayout.setErrorEnabled(true);
mTextInputLayout.setError("This field is required");
Run Code Online (Sandbox Code Playgroud)

再次,我只看到一个读取行,而不是错误消息,所以似乎显示错误消息的TextView被销毁,而不是再次创建.

在这里读到,TextView对象被破坏,setErrorEnabled(false)被调用时它似乎不再被创建.错误或功能?

此控件的源代码尚未在AOSP中提供,因此我使用内置于Android Studio的反编译器来检查代码以了解出现了什么问题.我发现setErrorEnabled()实际上创建并销毁了TextView对象,而我希望它只是切换可见性.

layout android textview android-textinputlayout

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

如何从Material Design文档实现持久性底部工作表

任何人有或可以提供更多相关信息?刚刚搜索了一半的网络,但找不到更多,甚至没有谷歌的演示应用程序.

https://www.google.com/design/spec/components/bottom-sheets.html#bottom-sheets-persistent-bottom-sheets

如何实现这些持久的底部表格?

android persistent material

5
推荐指数
2
解决办法
6528
查看次数

使用通配符的Firebase安全规则

我有这样的数据结构:

在此输入图像描述

如何/Restaurant/-KK37k6g5cYYippEHpZ3/User/-KK37k6g5cYYippEHpZ4/id在firebase安全规则中访问其值?两个按键应该是通配符.我需要这样的东西:

"Restaurant": {
        "$id": {
            ".read": "auth.uid != null",
            ".write": "data.child($id).child('User').child($anotherWildcard).child('id').val() === auth.uid"  
        }
    }
Run Code Online (Sandbox Code Playgroud)

firebase firebase-security firebase-authentication

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

图像视图/GIF重叠的Android涟漪效果

我在回收视图中有一个列表项,我想在整个元素上获得涟漪效果 - 目前我的 GIF 与涟漪重叠。我不知道如何解决这个问题,经过研究已经尝试了很多方法,但没有任何效果。

非工作涟漪效应的例子

这是我构建每个列表项所基于的特定 XML 文件。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/selector"
android:clickable="false">

<pl.droidsonroids.gif.GifTextView
    android:layout_width="84dp"
    android:layout_height="84dp"
    android:paddingTop="3dp"
    android:paddingBottom="3dp"
    android:paddingRight="1dp"
    android:paddingLeft="1dp"
    android:background="@drawable/a_present_for_you"
    />

<TextView
    android:id="@+id/textView"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textColor="@color/black"
    android:textSize="16sp"
    android:gravity="center_vertical"
    android:drawableRight="@drawable/ic_lock_open_blue_24dp"
    android:drawablePadding="16dp">
</TextView>

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

有任何想法吗?

android imageview ripple

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

Flutter:如何使对话框的按钮居中?

我的对话框有问题,即使我已经有按钮也不会居中

mainAxisAlignment: MainAxisAlignment.center, 
crossAxisAlignment: CrossAxisAlignment.center 
Run Code Online (Sandbox Code Playgroud)

在里面。我的代码:

actions: <Widget>[
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: <Widget>[
              Container(
                width: MediaQuery.of(context).size.width * 0.20,
                child: RaisedButton(
                  child: new Text(
                    'Save',
                    style: TextStyle(color: Colors.white),
                  ),
                  color: Color(0xFF121A21),
                  shape: new RoundedRectangleBorder(
                    borderRadius: new BorderRadius.circular(30.0),
                  ),
                  onPressed: () {
                    saveIssue();
                    Navigator.of(context).pop();
                  },
                ),
              ),
              SizedBox(
                width: MediaQuery.of(context).size.width * 0.01,
              ),
              Container(
                width: MediaQuery.of(context).size.width * 0.20,
                child: RaisedButton(
                  child: new Text(
                    'Cancel',
                    style: TextStyle(color: Colors.white),
                  ),
                  color: Color(0xFF121A21),
                  shape: new RoundedRectangleBorder(
                    borderRadius: new BorderRadius.circular(30.0),
                  ),
                  onPressed: () { …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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