我做了一个小型图书馆,展示了如何模仿Android Lollipop,here的股票联系人应用程序的风格.
问题
似乎在Android 5.1上,快速滚动器看起来与前一个非常不同,并且它太靠近右侧,因此很难使用它.
Android 4.4的屏幕截图:
这是Android 5上的截图:
在Android 5.1上:
我发现了什么
我试图浏览Android 5.1的所有“新内容”部分,以及一些相关的类文档,但除了“setFastScrollStyle”之外我没有找到任何特别的内容.但是,我找不到任何解释如何使用它(加上它来自API 21,所以这可能不是原因).
这个问题
如何使快速滚动条位于左侧,以便更容易触摸它?
你如何使用setFastScrollStyle?有没有这方面的教程?
解决方法
有两种可能性:
答:使用新样式并添加填充
这将保持API 21(Android 5.1)中相同的新矩形,但左右添加一些填充.
1:将fastscroll_thumb_material.xml复制到drawables文件夹
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape android:tint="?attr/colorControlActivated" android:shape="rectangle"> <solid android:color="@android:color/white" /> <size android:width="8dp" android:height="48dp" /> </shape> </item> <item> <shape android:tint="?attr/colorControlNormal" android:shape="rectangle"> <solid android:color="@android:color/white" /> <size android:width="8dp" android:height="48dp" /> </shape> </item> </selector>
2:编辑你的主题
将以下项添加到主题中.我认为你可以把它放在一个样式中并使用它与setFastScrollStyle,但我发现这更容易.
<item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb_material</item>
3:编辑fastscroll_thumb_material.xml
您可以根据自己的喜好对其进行编辑,但我执行了以下操作,在滚动条的左侧和右侧添加了8dp.我在每个形状周围添加了一个图层列表和项目,并将android:right =“8dp”和android:left =“8dp”添加到新项目中.我尝试将其添加到原始项目,但这不起作用,也没有添加填充到形状.
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <layer-list> <item android:right="8dp" android:left="8dp"> <shape android:tint="?attr/colorControlActivated" android:shape="rectangle"> <solid android:color="@android:color/white" /> <size android:width="8dp" android:height="48dp" /> </shape> </item> </layer-list> </item> <item> <layer-list> <item android:right="8dp" android:left="8dp"> <shape android:tint="?attr/colorControlNormal" android:shape="rectangle"> <solid android:color="@android:color/white" /> <size android:width="8dp" android:height="48dp" /> </shape> </item> </layer-list> </item> </selector>
B:将滚动条更改为旧样式
这将使用API 21,Android 5.0风格
1:将旧的drawable添加到项目中
你可以从上面的提交(fastscroll_thumb_mtrl_alpha.png和fastscroll_track_mtrl_alpha.9.png)下载它们,但我也捆绑了它们,你也可以下载它们from my Google Drive.
2:将fastscroll_thumb_material.xml添加到drawables
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <bitmap android:src="@drawable/fastscroll_thumb_mtrl_alpha" android:tint="?attr/colorControlActivated" /> </item> <item> <bitmap android:src="@drawable/fastscroll_thumb_mtrl_alpha" android:tint="?attr/colorControlNormal" /> </item> </selector>
3:将fastscroll_track_material.xml添加到drawable中
<?xml version="1.0" encoding="utf-8"?> <nine-patch xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/fastscroll_track_mtrl_alpha" android:tint="?attr/colorControlNormal" />
4:编辑你的主题
将以下项添加到主题中.我认为你可以把它放在一个样式中并使用它与setFastScrollStyle,但我发现这更容易.
<item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb_material</item> <item name="android:fastScrollTrackDrawable">@drawable/fastscroll_track_material</item>
我希望这有助于实现你的目标:)