在我的应用程序中,我有一个双窗格布局,左侧有一个列表。我想在所选列表行的右侧添加一个指示器,如下例所示:
我认为它是一个内置函数,但我找不到任何文档。有谁知道我们如何实现这一点?
在我的应用程序中,我有一个双窗格布局,左侧有一个列表。我想在所选列表行的右侧添加一个指示器,如下例所示:
我认为它是一个内置函数,但我找不到任何文档。有谁知道我们如何实现这一点?
如果不看代码,我不能肯定地说,但我很确定该指标不是内置功能。它可能是一个自定义视图,但很可能他们只是设置了一个复合可绘制对象,如此处所述: BitmapDrawable和此处:TextView
您正在寻找的方法是 setCompoundDrawables()。
在我的脑海中,我只需添加与右侧背景颜色匹配的指示器,使其看起来无缝。简单的解决方案。
一个简单的方法是使用9-patch 图像。例如,如果您想使用 Theme.DeviceDefault.Light (API > 14) 重现双窗格的效果,请使用Selector在您的 LinearLayout 项目的 Selected 状态下应用您的 9-patch 背景图像。
可选项目布局示例:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:background="@drawable/activable_indicator_background"
android:gravity="center_vertical"
android:paddingRight="20dp">
//eventually other items...
</LinearLayout>
Drawable/activable_indicator_background.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:drawable="@drawable/indicator" />
<item android:drawable="@android:color/transparent" />
</selector>
Drawable/indicator.9.png
: