- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 android:background="?android:attr/selectableItemBackground"
,但我不确定如何将它添加到我所在的 ConstraintLayout
中已经将背景颜色应用于 TextView
。这是我的:
<?xml version="1.0" encoding="utf-8"?>
<!-- Layout for app main screen -->
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/tan_background"
tools:context="com.example.android.miwok.MainActivity">
<TextView
android:id="@+id/numbers"
style="@style/CategoryStyle"
android:background="@color/category_numbers"
android:text="@string/category_numbers"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/family"
style="@style/CategoryStyle"
android:background="@color/category_family"
android:text="@string/category_family"
app:layout_constraintTop_toBottomOf="@+id/numbers" />
</android.support.constraint.ConstraintLayout>
有了 LinearLayout
,我知道我可以使用 FrameLayout
并将 TextView
嵌套在我可以应用 android:background= 的地方"?android:attr/selectableItemBackground"
和 android:background="@color/category_numbers"
到 FrameLayout
。然后可以对布局中的每个 TextView
重复此操作。但是,当我为 ConstraintLayout
尝试此操作时,它无法呈现。
有什么想法吗?
最佳答案
好的,所以我想出了问题。在 LinearLayout
下,当在 LinearLayout
开口中使用 android:orientation="vertical"
时,所有 FrameLayout
都会堆叠标签。使用 ConstraintLayout
时,我需要为每个 FrameLayout
添加左侧、右侧和顶部的约束,以便它们与 LinearLayout
堆叠相同>.
如果有人对此感兴趣,请查看 LinearLayout
的 XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/tan_background"
android:orientation="vertical"
tools:context="com.example.android.miwok.MainActivity">
<!-- Numbers category -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/category_numbers">
<TextView
android:id="@+id/numbers"
style="@style/CategoryStyle"
android:background="?android:attr/selectableItemBackground"
android:text="@string/category_numbers" />
</FrameLayout>
<!-- Family category -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/category_family">
<TextView
android:id="@+id/family"
style="@style/CategoryStyle"
android:background="?android:attr/selectableItemBackground"
android:text="@string/category_family" />
</FrameLayout>
</LinearLayout>
这是 ConstraintLayout
的 XML:
<?xml version="1.0" encoding="utf-8"?>
<!-- Layout for app main screen -->
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/tan_background"
tools:context="com.example.android.miwok.MainActivity">
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/category_numbers"
android:id="@+id/frameNumbers"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent">
<TextView
android:id="@+id/numbers"
style="@style/CategoryStyle"
android:text="@string/category_numbers" />
</FrameLayout>
<!-- Family category -->
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/frameFamily"
android:background="@color/category_family"
app:layout_constraintTop_toBottomOf="@+id/frameNumbers"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent">
<TextView
android:id="@+id/family"
style="@style/CategoryStyle"
android:text="@string/category_family" />
</FrameLayout>
</android.support.constraint.ConstraintLayout>
出于某种原因,一旦我使用 FrameLayout,圆形约束 handle 就会消失。
关于android - 将 selectableItemBackground 与 ConstraintLayout 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44137179/
有什么区别: android:background="?selectableItemBackground" android:background="?attr/selectableItemBackgr
在构建布局时,我注意到 selectableItemBackground 的背景颜色与 UI 其余部分的背景颜色不匹配。为了缓解这种情况,我想导入 {android_sdk}/platforms/{p
我正在尝试对遗留代码实现 Material Design。 我想要一个按钮在点击时产生链式 react ,但它什么也没显示。 我正在使用默认的 ?android:attr/selectableItem
目前,当我点击这个按钮时,我有这样的效果: “按钮”就是这样的 ImageView: 所以我的问题是:我怎样才能在这个 ImageView(与 View 类型无关)上使用 selectableIte
我正在尝试在 Android 应用程序中使用 RecyclerView。我将 RecyclerView 示例项目导入到 Android Studio 中,它运行良好。 我想让回收站 View 中的项目
我正在尝试使 ImageButton 使用android:background="?attr/selectableItemBackground" 但我的应用崩溃了。我只是关注这个 answer还有这个
现在我的 View (framelayout)有 android:background="?android:attr/selectableItemBackground" 我想给它添加
我正在为列表使用 RecyclerView。我找到了一个非常好的解决方案来提供列表点击反馈和涟漪(在 Lollipop 上)。基本上我给我的行布局属性: android:background="?an
我正在尝试将无边框背景设置为按钮(按下时必须突出显示)。为此,我尝试设置: android:background="?android:attr/selectableItemBackground" (如
XML 布局 这是我在 recyclerview 中的行的布局,我之前使用过“?attr/selectableItemBackground”并且效果很好,但没有任何东西可以使这种链式 react
我一直使用 android:background="?selectableItemBackground" 在单击 View (例如 LinearLayout)时产生涟漪效果。我想我在某处读到它向后兼容
我从 Google IO Schedule 应用源 (https://github.com/google/iosched) 复制了一个文件,即 selected_navdrawer_item_back
我尝试在 recyclerview 中使用 selectableItemBackground,我测试了一个简单的演示,它正在运行。 这是布局和样式: 风格:
我的 xml 文件的第 59 行: 错误发生是因为 ?attr/属性。如果我将它替换为#FF00000 或其他内容,一切正常。这种崩溃并不经常发生。 07-28 19:16:46.686
我通过 android - apply selectableItemBackground in xml with support v7 偶然发现了表达式 ?attr/selectableItemBac
我有一个标签布局 为了实现波纹动画,我必须将背景更改为 android:background="?attr/selectableItemBackground" 它启用波纹动画,但默认颜色是灰色,我希
我在 CardView 上添加了 selectableItemBackground,它显示在 recyclerview 上。每个 CardView 显示文本和图像。每张卡片都可以选择,为了在点击时添加
我有几个按钮需要椭圆形边框。 所以我在 capsule_border.xml 中有这个 我会在需要的地方使用 android:background="@drawable/ca
在编写我的 android 应用程序时,我使用了 android:background="?android:attr/selectableItemBackground" 我尝试寻找包含源代码的 att
我注意到属性 ?attr/selectableItemBackground 创建的效果仅在我长按 View 时显示。但我希望它在每次点击时都显示出来。 View 是可点击的并且有点击监听器。 怎么做?
我是一名优秀的程序员,十分优秀!