我有以下情况:
这是我的存储库类:
import com.mikhailovskii.timesapp.util.Result
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.flow
class LoginRepository {
fun fetchUser() = flow {
emit(Result.Loading)
delay(1000)
emit(Result.Success((0..20).random()))
}
}
Run Code Online (Sandbox Code Playgroud)
有 ViewModel 类:
import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel
import com.mikhailovskii.timesapp.util.Result
class LoginViewModel() : ViewModel() {
private val loginRepository = LoginRepository()
private val a = loginRepository.fetchUser()
val user: LiveData<Result<Int>> get() = loginRepository.fetchUser().asLiveData()
}
Run Code Online (Sandbox Code Playgroud)
还有 Result 类:
sealed class Result<out R> {
data class Success<out T>(val data: T) : Result<T>()
object Loading : Result<Nothing>()
object Error : Result<Nothing>()
}
Run Code Online (Sandbox Code Playgroud)
因此,当我尝试在asLiveData方法的帮助下将 …
我遇到以下问题 - 下拉菜单项的宽度与 OutlinedTextField 的宽度不同

寻找解决方案 - 发现以下内容:
添加变量以保持textField宽度:
var textFieldSize by remember { mutableStateOf(Size.Zero) }
Run Code Online (Sandbox Code Playgroud)
将值设置onGloballyPositioned为TextField
onGloballyPositioned { coordinates ->
textFieldSize = coordinates.size.toSize()
}
Run Code Online (Sandbox Code Playgroud)
读取其中的值ExposedDropdownMenu
ExposedDropdownMenu(
expanded = expanded,
onDismissRequest = { expanded = false },
modifier = Modifier
.background(Color.White)
.width(with(LocalDensity.current) { textFieldSize.width.toDp() })
)
Run Code Online (Sandbox Code Playgroud)
问题是它可以很好地与 一起工作DropdownMenu,但不能与 一起工作ExposedDropdownMenu。有什么问题?
这是完整的代码:
var expanded by remember { mutableStateOf(false) }
val genderList by remember { mutableStateOf(listOf("Male", "Female")) }
var textFieldSize by remember { …Run Code Online (Sandbox Code Playgroud) 我遇到了以下问题:当我尝试像教程中那样制作 RN 项目时,我有下一个窗口:“adb” can’t be opened because Apple cannot check it for malicious software.
是的,我知道当我有这样的窗口时,我应该在finder中打开应用程序,单击鼠标右键,然后单击“打开”。
但是在这种情况下我不能这样做,因为adb在finder中无法打开,那么我该如何解决这个问题呢?
我安装了最新版本的Mac OS(Catalina Beta 10.15),并遇到以下问题:当我打开Android studio并开始编写代码时,studio退出了此类崩溃报告。您能帮我解决这个问题吗,因为它实际上无法正常工作。我认为重新安装可以提供帮助,但是也许还有其他解决方案?
*Message in a code style, because pastebin links require that *
Run Code Online (Sandbox Code Playgroud) 我遇到了以下问题:
这是注册屏幕,上面有几个输入字段。当用户输入内容时,该值会传递到 ViewModel,设置为屏幕状态并通过 StateFlow 传回屏幕。从可组合项中,我正在观察这个 StateFlow。问题是 Composable 在向 Flow 发出新值后并未失效。
这是视图模型代码:
class RegistrationViewModel : BaseViewModel() {
private val screenData = CreateAccountRegistrationScreenData.init()
private val _screenDataFlow = MutableStateFlow(screenData)
internal val screenDataFlow = _screenDataFlow.asStateFlow()
internal fun updateFirstName(name: String) {
screenData.firstName = name
updateScreenData()
}
private fun updateScreenData() {
viewModelScope.launch {
_screenDataFlow.emit(screenData.copy())
}
println()
}
}
Run Code Online (Sandbox Code Playgroud)
这是可组合的代码:
@Composable
fun RegistrationScreen(navController: NavController, stepName: String) {
val focusManager = LocalFocusManager.current
val viewModel: RegistrationViewModel by rememberInstance()
val screenData by viewModel.screenDataFlow.collectAsState()
Scaffold {
ConstraintLayout(
modifier = Modifier
.fillMaxSize() …Run Code Online (Sandbox Code Playgroud) 我有以下 recyclerview 适配器:
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.AsyncListDiffer
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.add_new_card_list_item.view.*
import kotlinx.android.synthetic.main.bank_card_list_item.view.*
import kz.moneyman.R
class BankCardsAdapter(
private val onDeleteCardClickListener: OnDeleteCardClickListener,
private val onAddCardClickListener: OnAddCardClickListener
) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var checkedItem = 0
private val differ = AsyncListDiffer(this, BankCardsDiffUtilCallback())
override fun getItemViewType(position: Int): Int {
if (differ.currentList[position].isNotEmpty()) {
return R.layout.bank_card_list_item
}
return R.layout.add_new_card_list_item
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val itemView = LayoutInflater.from(parent.context).inflate(viewType, parent, false)
return if (viewType == R.layout.bank_card_list_item) {
BankCardViewHolder(itemView) …Run Code Online (Sandbox Code Playgroud) 我需要借助Redux之类的工具从服务器获取数据。我看了一些有关它的教程,并为此编写了一些代码。这里是:
actions / fetching_actions.js
import * as Actions from '../constants/action_types';
function fetchListOfCities() {
return fetch(`${Actions.BASE_URL}/data/2.5/find?lat=55.5&lon=37.5&cnt=10&appid=8df903ce56f6d18245e72f380beb297d`);
}
export const listOfCitiesRequest = () => function (dispatch) {
return fetchListOfCities()
.then(list => list.json())
.then((list) => {
dispatch(getListOfCities(list));
}).catch((error) => {
console.log(error);
});
};
export const getListOfCities = result => ({
type: Actions.LIST_RESPONSE,
result,
});
Run Code Online (Sandbox Code Playgroud)
常量/action_types.js
export const BASE_URL = 'http://api.openweathermap.org';
export const LIST_RESPONSE = 'LIST_RESPONSE';
export const CITY_RESPONSE = 'CITY_RESPONSE';
Run Code Online (Sandbox Code Playgroud)
reducers / fetching_reducer.js
import * as Actions from '../constants/action_types';
const initialState = { …Run Code Online (Sandbox Code Playgroud) 我面临以下问题:我需要制作一个片段,除了底部导航视图外,它的高度与屏幕的高度相同。这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.main.MainActivity">
<FrameLayout
android:id="@+id/tabs_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#111111"
app:layout_constraintBottom_toTopOf="@id/bottom_nav" />
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_nav"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_nav_height"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/bottom_nav_menu" />
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
我加android:background="#111111"了看看,fragment的真实高度是多少。可能我认为这app:layout_constraintBottom_toTopOf="@id/bottom_nav"可以帮助我,但不幸的是它没有解决我的问题。那么,我该如何处理呢?