标签: android-include

Android:使用RippleEffect和StateListAnimator的<include>

我有一个布局,其中包括另一个布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:orientation="vertical"
          android:id="@+id/layout1">

    <include layout="@layout/my_layout"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我需要一个RippleEffect以及一个StateListAnimator添加到包含布局.

例:

<include layout="@layout/my_layout"
          android:stateListAnimator="@anim/lift_up"
          android:background="@drawable/ripple_effect"/>
Run Code Online (Sandbox Code Playgroud)

RippleEffect和StateListAnimator都可以100%运行.我不能改变包含的布局.因此,我需要对include标签或父布局本身进行效果.

我尝试了两种技术,但都没有成功.

UPDATE

如果可能,应该以编程方式关闭.

更新2

其次,一旦动画,我将如何保持视图升高

android android-layout rippledrawable android-include

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

包含布局的数据绑定变量继承

我正在学习数据绑定和mvvm.我有一个问题,我希望BaseViewModel.kt包含一些与UI相关的变量,如isLoading标志和loadingText.当发出网络请求时,我设置isLoading为true,我的基本视图模型的一些子项应该设置文本.例如,LoginViewModel.kt文本可能是"登录".是否可以将这些变量传递给包含的基本布局?

所以login_activity.xml可能在它的布局中包含这个:

    <data>
        <import type="android.view.View" />
        <variable
            name="viewModel"
            type="core.sdk.ui.login.LoginViewModel" />
    </data>

<!-- Various click listeners using the viewModel variable -->

    <include
        android:id="@+id/progress_include"
        layout="@layout/progress_bar"
        android:visibility="@{viewModel.isLoading ? View.VISIBLE : View.GONE}"
        bind:viewModel="@{viewModel}"/>
Run Code Online (Sandbox Code Playgroud)

现在我想让我progress_bar.xml变得漂亮和通用并使用基本视图模型:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="core.sdk.ui.login.LoginActivity">

<data>

    <import type="android.view.View" />

    <variable
        name="viewModel"
        type="core.sdk.ui.base.BaseViewModel" />

</data>

<LinearLayout
    android:id="@+id/circular_progress"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical">

    <android.support.v4.widget.ContentLoadingProgressBar
        style="@style/Widget.AppCompat.ProgressBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/progress_text"
        style="@style/TextAppearance.AppCompat.Subhead"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-thin"
        android:gravity="center_horizontal"
        android:text="@{viewModel.loadingText}"
        android:textStyle="italic"
        tools:text="loading..." /> …
Run Code Online (Sandbox Code Playgroud)

android android-databinding android-include

9
推荐指数
2
解决办法
3663
查看次数

如何通过android中的数据绑定将onTextChanged侦听器添加到包含布局xml

我在将 onTextChanged 添加到包含布局中的 TextInputEditText 时遇到问题。

有一个 base_edittext_view.xml 如下:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">


<android.support.design.widget.TextInputLayout
    android:id="@+id/textInputLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColorHint="@color/colorPrimaryText"
    android:background="@drawable/textinputlayout_background"
    app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">

    <android.support.design.widget.TextInputEditText
        android:id="@+id/edittextItem"
        style="@style/TextStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/input_border_bottom"
        android:cursorVisible="true"
        android:drawableEnd="@drawable/ic_user"
        android:drawablePadding="@dimen/padding_medium"
        android:gravity="center|left"
        android:hint="@string/email"
        android:inputType="textEmailAddress"
        android:maxLength="50"
        android:paddingBottom="@dimen/padding_medium"
        android:paddingTop="@dimen/padding_medium"
        android:paddingEnd="@dimen/padding_xlarge"
        android:paddingStart="@dimen/padding_medium"
        android:textColor="@color/edittext_text_color"
        android:textColorHint="@color/edittext_hint_text_color"
        android:textSize="@dimen/textsize_medium"
      />

   <!---->

</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

我想向包含 base_edittext_view.xml 的布局添加一个 onTextChanged 侦听器。

android:onTextChanged="@{(text, start, before, count) -> viewModel.onTextChanged(text)}"
Run Code Online (Sandbox Code Playgroud)

添加 onClick 以包含布局没有问题,但对于 onTextChanegd 我不知道如何实现它。

笔记:

     <include
                android:id="@+id/edittextEmail"
                layout="@layout/edittext_email_base_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/padding_xxxxlarge"
                />
Run Code Online (Sandbox Code Playgroud)

android android-layout android-databinding android-include addtextchangedlistener

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