小编RoR*_*oob的帖子

Android 数据绑定 - 观察包装在自定义视图中的编辑文本值

我有一个包含编辑文本的自定义视图。

我希望使用数据绑定在使用此自定义视图的类中观察此编辑文本的更改。

如何将编辑文本的输入字符串公开给使用自定义视图的其他类?

双向数据绑定是唯一的方法吗?

在其他 XML 中:

<MyCustomView
        android:id="@+id/password_edittext"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:password="@={controller.password}"
        app:isPasswordValid="@={controller.isValid}"/>
Run Code Online (Sandbox Code Playgroud)

自定义视图的布局(Linear Layout):

<merge>

    <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/security_code_input_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/email_text_view">

        <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/security_code_edit_text"
                android:background="@drawable/edittext_background"
                android:inputType="textPassword"
                android:text="@={view.pass}"
                app:onSubmit="@{() -> view.onKeyboardActionDoneClicked()}" />

    </com.google.android.material.textfield.TextInputLayout>

    <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/textfield_error_invalid_password_length"
            app:visibleOrGone="@{view.showInvalidPasswordText}" />

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

android android-databinding

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

即使 React.memo 返回 true,子组件也会在父组件重新渲染时重新渲染

我有一个嵌套组件,用于发起上传图像的 HTTP 请求。它显示进度。

\n
const PreviewItem = React.memo(function PreviewItem(props: PreviewItemProps) {\n    const {fileObject, handleRemove, classes, onUploadFinished} = props\n\n    const [isLoading, setIsLoading] = useState(false)\n    const [completed, setCompleted] = useState(0);\n\n    const cancelTokenSource = axios.CancelToken.source();\n\n    useEffect(() => {\n        const data = new FormData();\n        data.append('file', fileObject.file);\n\n        const config: AxiosRequestConfig = {\n            onUploadProgress: function (progressEvent) {\n                const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);\n                setCompleted(percentCompleted)\n            },\n            cancelToken: cancelTokenSource.token\n        };\n\n        if (!fileObject.isUploaded) {\n            setIsLoading(true)\n            avantiApi.post<DirectUploadResponse>("images/upload", data, config).then(response => {\n\n                setIsLoading(false)\n\n                if (onUploadFinished) {\n                    onUploadFinished(response.data, fileObject)\n                }\n …
Run Code Online (Sandbox Code Playgroud)

reactjs react-hooks

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