小编Tim*_*dia的帖子

Android Studio androidx.coordinatorlayout错误以及如何设置3Dot菜单?

我有以下问题。我的Android Studio显示了错误,该错误已记录在标题Screenshot中。我试图在右上角实现漂亮的3点菜单。如果有人可以告诉我问题是什么,那将是非常好的...

我尝试爬网时遇到的错误是:

C:\Users\User\AndroidStudioProjects\BluetoothCar\app\src\main\java\com\car\bluetooth\bluetoothcar\MainActivity.java:11: error: package android.support.design.widget does not exist import android.support.design.widget.AppBarLayout;

C:\Users\User\AndroidStudioProjects\BluetoothCar\app\src\main\java\com\car\bluetooth\bluetoothcar\MainActivity.java:12: error: package android.support.v7.widget does not exist import android.support.v7.widget.Toolbar;

我已经尝试导入v7.widget.toolbar,但是它将v7标记为红色并显示无法解析符号。

MainActivity.java:

package com.car.bluetooth.bluetoothcar;

import android.os.Bundle;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.support.design.widget.AppBarLayout;
import android.support.v7.widget.Toolbar;

import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.SeekBar;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

//SeekBars

private SeekBar seekBarGas;
private TextView textViewGas;

private SeekBar seekBarSteering;
private TextView textViewSteering;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); …
Run Code Online (Sandbox Code Playgroud)

android

6
推荐指数
2
解决办法
9883
查看次数

Jetpack 组合 uiState 中的更改不会触发重组

我想我还没有完全理解组合状态是如何工作的。当 uiState 中的项目发生更改时,我无法触发重组。

我正在构建一个需要通知访问的应用程序,因此我将用户导航到设置,并且在用户授予权限后,他们必须导航回该应用程序。这就是我想触发重组的地方。

我在 onResume 工作中进行了权限检查,并且 uiState 中的变量发生了变化,但没有调用重组。我在这里缺少什么?

可组合的

@Composable
private fun MainLayout(viewModel: SetupViewModel){
    val uiState = viewModel.uiState.collectAsState()
    SetupItem(
        title = "Notification access",
        summary = if(uiState.value.hasNotificationPermission) stringResource(R.string.granted) else stringResource(R.string.not_granted){}
}
Run Code Online (Sandbox Code Playgroud)

设置UiState.kt

data class SetupUiState(
    var hasNotificationPermission: Boolean = false
)
Run Code Online (Sandbox Code Playgroud)

我知道一个事实hasNotificationPermission被设置为 true,但 SetupItem 中的摘要不会更新。我该如何做到这一点?

android state android-jetpack android-jetpack-compose

5
推荐指数
1
解决办法
2041
查看次数

Android 13 主题图标被切断/不适合框架

我正在尝试实现新的主题图标,但遇到的问题是我的图标总是放大 2 倍,并且无法使其适合画布。

下面您可以看到左侧为普通图标,右侧为主题图标。

比较

ic_启动器

<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@mipmap/ic_launcher_background"/>
    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
    <monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
</adaptive-icon>
Run Code Online (Sandbox Code Playgroud)

ic_launcher_单色

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24"
    android:viewportHeight="24">

        <!-- PATH DATA -->

</vector>
Run Code Online (Sandbox Code Playgroud)

为什么主题版本会放大?如何解决此问题?

icons android android-icons android-vectordrawable android-13

4
推荐指数
1
解决办法
880
查看次数