我有一个代码,其中类型转换返回的值与较大的值大不相同。
static void Main(string[] args)
{
double a = 345.09;
byte c = (byte) a;
Console.WriteLine(c);
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
这将返回值89
。背后的原因是什么?
我正在尝试在jetpack 中准备一个设计,在盒子的一侧有部分边框。这是我现在的用户界面,
目前背景是纯色,但将替换为图像。我想打破左下角的边框并添加一些类似于下面的屏幕截图的文本,同时保持背景不变。
这是我的代码:
Box(modifier = Modifier
.fillMaxWidth()
.fillMaxHeight()) {
Box(modifier = Modifier.fillMaxHeight().fillMaxWidth().background(Color(0xFF37C7D7).copy(alpha = 0.6f)))
Box(modifier = Modifier
.fillMaxHeight()
.fillMaxWidth()
.background(Color.Transparent)
.padding(20.dp,30.dp)
.border(width = 0.8.dp, color = Color.White.copy(alpha = 0.5f), shape=RoundedCornerShape(32.dp))
)
Box(modifier = Modifier
.fillMaxHeight()
.fillMaxWidth()
.background(Color.Transparent)
.padding(28.dp,38.dp)
.border(width = 0.8.dp, color = Color.White.copy(alpha = 0.5f), shape=RoundedCornerShape(28.dp))
)
Column(modifier = Modifier.statusBarsPadding()
.fillMaxWidth()
.fillMaxHeight().padding(20.dp,40.dp),
verticalArrangement = Arrangement.Bottom) {
Text(text = "this is Test",modifier = Modifier.padding(0.dp,30.dp))
}
}
Run Code Online (Sandbox Code Playgroud) android android-layout kotlin android-jetpack android-jetpack-compose
我正在 jetpack compose 中编写一些寻呼机代码,并遇到需要通过单击按钮更改页码的情况。这是我单击按钮时的事件:
onClick = {pagerState.scrollToPage(page=currentPager+1)}
Run Code Online (Sandbox Code Playgroud)
但当我这样做时,我收到此错误:Suspend function 'scrollToPage' should be called only from a coroutine or another suspend function
我通过添加以下内容找到了解决方案:
onClick = {GlobalScope.launch (Dispatchers.Main) {pagerState.scrollToPage(page=currentPager+1)}}
Run Code Online (Sandbox Code Playgroud)
但仍然不建议使用 GlobalScope.launch 。上面的 onClick 在基本 compose 函数中调用。如何解决 jetpack compose 中的此问题?
android kotlin android-jetpack kotlin-coroutines android-jetpack-compose
我的 HiltViewModel 中有一个 mutableStateof,名为“loading”。我正在更新从视图模型中的函数加载的值,该值被传递给 @composable 函数并在那里使用。情况是加载值在 viewModel 中完美更新,但没有反映在 @Composable 函数中。我的视图模型是:
@HiltViewModel
class AuthenticationViewModel @Inject constructor(
private val repository: AppRepository,
application: Application
): ViewModel() {
val loading = mutableStateOf(false)
fun update() = viewModelScope.launch {
loading.value = true
}
}
Run Code Online (Sandbox Code Playgroud)
加载值已在此处更新,但未反映在 @composable 中
@Composable
fun LoginScreen(
viewModel: AuthenticationViewModel,
actions: MainActions
) {
val loading = viewModel.loading.value
//Loading is another composable function where bool value is passed
Loading(state = loading)
CustomNavigationButton(title = "Sign In",enabled = true,onClick =
{viewModel.update()})
}
Run Code Online (Sandbox Code Playgroud)
现在,当我单击导航按钮时,将调用视图模型函数,并且加载状态也会更新,但不会反映在 @Composable 中
加载可组合项是: …
我正在为 Mapbox 使用 Mapbox-gl 包。我正在 useEffect 内渲染地图,我想要做的是更改 Mapbox 的中心而不完全重新渲染地图。例如
const mapContainerRef = useRef(null);
const [markerLngLat, setMarkerLngLat] = useState([85.324, 27.7172]);
useEffect(() => {
const map = new mapboxgl.Map({
container: mapContainerRef.current,
style: 'mapbox://styles/lmaps/ckl6t1boq578819qod5v7ynby',
center: markerLngLat,
zoom: 13,
});
}, []);
return (
<div>
<a onClick={setMarkerLngLat([65.468754, 44.57875])} />
<div className='listing-map-container' ref={mapContainerRef} />
</div>
);
Run Code Online (Sandbox Code Playgroud)
通过单击按钮,我想将地图的中心从之前的经纬度移动到新设置的经纬度,而不需要重新渲染整个地图。在 useEffect 的 [] 中传递markerLngLat 是可行的,但它会完全重新渲染地图及其上的所有其他 1000 个标记,因此不能更喜欢这种方式。实际的代码要长得多,并且地图上标记了许多标记,因此我不想完全重新渲染地图。
我的 React 项目中有一个 .env 文件,并使用dotenv
package 来读取环境变量。我做了环境变量的控制台日志。我一开始就在 .env 文件中初始化了几个变量,并且可以完美读取。
后来我更改了 .env 文件中的一些数据并重新启动了本地服务器,但新的更改没有得到反映。即使删除 .env 文件并启动服务器后,也会加载相同的旧变量。我知道这是一个缓存问题,但无法找到重置它的方法。
我正在使用npm start
命令来启动服务器。
android ×4
kotlin ×4
javascript ×2
reactjs ×2
.net ×1
c# ×1
dotenv ×1
mapbox ×1
mapbox-gl ×1
mapbox-gl-js ×1