我正在使用 Material Components 来创建 Choice 芯片。我遵循了https://material.io/develop/android/components/chip/文档。有足够的东西可以用 XML 创建芯片,但不知道如何以编程方式创建选择芯片。
我使用以下代码动态创建芯片,但默认情况下它创建动作芯片。
val chip = Chip(activity)
chip.text = ("Chip 1")
chipGpRow.addView(chip)
Run Code Online (Sandbox Code Playgroud) android android-chips material-components material-components-android
有很多教程可用于将 SQLite 数据库导出到 csv 文件,但没有足够的东西从房间数据库导出。
使用 sqlite 导出参考将SQLite 数据库导出到 android 中的 csv 文件,手动解析每列行的空间。以下是我的代码:
@Dao
interface CategoryDao {
@Query("SELECT * FROM Category")
fun getAllCategory(): List<Category>
}
// Export csv logic
val categoryList = categoryDao.getAllCategory()
val csvWrite = CSVWriter(FileWriter(file))
for (item in categoryList) {
val arrStr = arrayOf<String>(item.categoryId, item.categoryName)
csvWrite.writeNext(arrStr)
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以导出csv。即使在房间里也没有实用地获取表的列名,因此无法为所有表创建动态通用逻辑。
我使用以下属性实现了 RecyclerView 快速滚动:
<android.support.v7.widget.RecyclerView
...
app:fastScrollEnabled="true"
app:fastScrollHorizontalThumbDrawable="@drawable/fast_scroll_thumb"
app:fastScrollHorizontalTrackDrawable="@drawable/fast_scroll_track"
app:fastScrollVerticalThumbDrawable="@drawable/fast_scroll_thumb"
app:fastScrollVerticalTrackDrawable="@drawable/fast_scroll_track"/>
Run Code Online (Sandbox Code Playgroud)
fast_scroll_thumb.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="@color/lightBlue" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="@color/lightBlue" />
</shape>
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
fast_scroll_track.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/gray" />
</shape>
Run Code Online (Sandbox Code Playgroud)
但是,快速滚动拇指大小取决于数据数量。随着 RecyclerView 数据的增加,拇指大小减小。有没有办法将拇指大小固定在固定高度?