4

在我的应用程序中,我有一个双窗格布局,左侧有一个列表。我想在所选列表行的右侧添加一个指示器,如下例所示:

Gmail 示例 阅读器示例

我认为它是一个内置函数,但我找不到任何文档。有谁知道我们如何实现这一点?

4

3 回答 3

0

如果不看代码,我不能肯定地说,但我很确定该指标不是内置功能。它可能是一个自定义视图,但很可能他们只是设置了一个复合可绘制对象,如此处所述: BitmapDrawable和此处:TextView

您正在寻找的方法是 setCompoundDrawables()。

于 2012-10-03T16:42:43.997 回答
0

在我的脑海中,我只需添加与右侧背景颜色匹配的指示器,使其看起来无缝。简单的解决方案。

于 2012-10-03T17:23:47.293 回答
0

一个简单的方法是使用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

指标 9 补丁图像

于 2014-01-21T10:25:06.437 回答