我的数据类看起来像这样
@Entity(tableName = "items")
data class Item(
@ColumnInfo(name = "name") var name: String = "",
@ColumnInfo(name = "room") var room: String = "",
@ColumnInfo(name = "quantity") var quantity: String = "",
@ColumnInfo(name = "description") var description: String = "",
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id") var id: Long = 0
)
Run Code Online (Sandbox Code Playgroud)
Room使用SQLite和SQLite支持其数据库中的NOT NULL列.我尝试用@NonNull注释列,但它没有效果.
有没有办法让房间数据库中的列不可为空?
如何删除 TabItem 或其指示器的底部填充,以便它完全出现在工具栏的底部?
我的 xml 布局
<android.support.v7.widget.Toolbar
android:id="@+id/menu_fragment_toolbar"
android:layout_width="match_parent"
android:layout_height="58dp"
android:background="@color/app_font_dark"
android:padding="0dp"
android:popupTheme="@style/AppTheme.AppBarOverlay"
app:contentInsetStart="0dp"
>
<android.support.design.widget.TabLayout
android:id="@+id/main_menu_tablayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:paddingEnd="0dp"
android:paddingStart="0dp"
app:tabIndicatorColor="@color/app_indicator_color"
app:tabIndicatorHeight="4dp"
app:tabMode="scrollable"
app:tabPaddingEnd="30dp"
app:tabPaddingStart="30dp"
app:tabTextAppearance="@style/TabTextStyle"
/>
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)
我尝试将Toolbar和 的底部边距和填充设置TabLayout为 0dp 但似乎没有生效。我正在使用支持库 v26.0.0-alpha1 和具有 API 25 的设备。我通过调用动态添加 TabItems
tabLayout.addTab(tabLayout.newTab().setText("Some long text"));
我想缓冲元素并在x时间内没有新元素时将它们作为集合发出。怎么做?
例如给定的输入
INPUT TIME
1 0
2 0
3 100
4 150
5 400
6 450
7 800
Run Code Online (Sandbox Code Playgroud)
如果我的x = 200我想发射 {1, 2, 3, 4}, {5, 6}, {7}
我尝试过的方法很简单buffer(),但是随着时间的推移却无法消除抖动。我也试过throttleFirst()源和flatMap()它buffer().take(1)的来源里面flatMap,它的工作原理类似,但不完全是任意的。