我知道普通的底板可以这样设置
rememberModalBottomSheetState(
initialValue = ModalBottomSheetValue.Hidden,
confirmStateChange = { it != ModalBottomSheetValue.HalfExpanded },
)
Run Code Online (Sandbox Code Playgroud)
这样它就永远不会扩大一半。但是,如果我想在伴奏导航中使用底页执行同样的操作该怎么办?
android kotlin android-jetpack-compose jetpack-compose-accompanist
我刚刚在 python 中实现了一个 Linux 命令外壳,仅使用os库的低级系统调用,诸如此类fork()。
我想知道如何实现一个键侦听器,该侦听器将侦听键 (UP|DOWN) 以滚动浏览我的 shell 的历史记录。
我想在不使用任何花哨的库的情况下做到这一点,但我也希望这不是超级复杂的事情。到目前为止,我的代码只有大约 100 行代码,我不想为了获得一个简单的功能而创建一个怪物:D
我对这个问题的想法是,应该可以创建一个带有某种循环的子进程,它将侦听 up^[[A和 down ^[[B,按键,然后以某种方式将文本放入我的输入字段,就像一个普通终端。
到目前为止,我最感兴趣的是 key-listener 的可能性。但接下来我可能必须弄清楚如何将该文本输入到输入字段中。关于这一点,我想我可能必须使用提供的一些stdin功能sys。
我只对让它在 Linux 上运行感兴趣,并希望继续使用低级系统调用,最好不是为我处理所有事情的 Python 库。这是一个学习练习。
我用Python编写了这个函数:
def calc(a): return lambda op: {
'+': lambda b: calc(a+b),
'-': lambda b: calc(a-b),
'=': a}[op]
Run Code Online (Sandbox Code Playgroud)
所以你可以这样计算:
calc(1)("+")(1)("+")(10)("-")(7)("=")
Run Code Online (Sandbox Code Playgroud)
结果将是5。
我想在 Haskell 中制作相同的函数来了解 lambda,但我遇到了解析错误。
我的代码如下所示:
calc :: Int -> (String -> Int)
calc a = \ op
| op == "+" = \ b calc a+b
| op == "-" = \ b calc a+b
| op == "=" = a
main = calc 1 "+" 1 "+" 10 "-" 7 "="
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 jetpack compose 中进行聊天,并且希望能够使用三星上的标准 gif 键盘发送 gif。
当我在普通文本字段上单击 GIF 时,我当前收到一条消息“无法在此处输入此内容”
我发现了一个叫做Commit Content API的东西,它应该可以在旧的 EditText 中添加 GIF,所以我在 AndroidView 中尝试,现在我不再收到错误消息,但我也不知道 GIF 在哪里是什么以及它是如何表示的。
AndroidView(factory = {
val editText = @SuppressLint("AppCompatCustomView")
object : EditText(it) {
override fun setOnReceiveContentListener(
mimeTypes: Array<out String>?,
listener: OnReceiveContentListener?
) {
super.setOnReceiveContentListener(mimeTypes, listener)
}
override fun onCreateInputConnection(editorInfo: EditorInfo): InputConnection {
val ic: InputConnection = super.onCreateInputConnection(editorInfo)
EditorInfoCompat.setContentMimeTypes(editorInfo, arrayOf("image/gif"))
val callback =
InputConnectionCompat.OnCommitContentListener { inputContentInfo, _, _ ->
try {
inputContentInfo.requestPermission()
} catch (e: Exception) {
return@OnCommitContentListener false
}
true …Run Code Online (Sandbox Code Playgroud) 我正在使用一个绘图应用程序来实现一个绘图应用程序AndroidView,它占据了整个屏幕,并且用户将在整个屏幕上绘图。但是,当手指触摸屏幕的右侧或左侧时,应用程序将被拖走并最小化或弹出后台。
仅当我处于此状态时,如何使用 jetpack compose 禁用此行为AndroidView?
我正在开发一个函数,该函数将接收预订列表,并且每个预订都包含一个 unix 时间戳。
我正在使用 viewpager 的功能,其中每个页面都包含一个 recyclerview,因此我想创建一个天数列表,包含当前日期和上次预订日期之间的所有日期。
每天都有自己的日期和预订列表,该列表也可以为空。
我想以函数式风格创建日期列表,我真的不知道如何做,但我很确定 kotlin 有一些不错的功能隐藏在某处供我执行。
先感谢您。:)
这是我的函数的样子,以及我在其中使用的模型。
data class Day(val date:Date, val bookings: List<Bookink>)
data class Booking(val id:String, val time:Long, val user:User)
fun dates(bookings: List<Booking>): List<Day> {
val lastDate = Date(bookings.last().time)
val days = ArrayList<Day>()
val cal = GregorianCalendar()
cal.time = Date()
while (cal.time.before(lastDate)) {
days.add(Day(cal.time, bookings.filter { (Date(it.time) == cal.time) }))
cal.add(Calendar.DATE, 1)
}
return days
}
Run Code Online (Sandbox Code Playgroud) android ×3
kotlin ×3
function ×1
haskell ×1
jetpack-compose-accompanist ×1
keypress ×1
lambda ×1
linux ×1
list ×1
low-level ×1
mime-types ×1
python ×1
python-os ×1
recursion ×1
return-type ×1