当前位置: 首页 > 知识库问答 >
问题:

如何显示/隐藏基于android sdk构建版本的小部件?

敖子安
2023-03-14

在android应用程序中,我们可以使用<code>android.os.Build.VERSION。SDK_INT以获取当前在硬件设备上运行的软件的SDK版本。如何在flutter应用程序中执行同样的操作,以便显示或隐藏基于android构建版本的小部件?

共有3个答案

白学
2023-03-14

然而,当我只需要< code >构建时,CopsOnRoad的答案是好的。我已经为Flutter中需要的其他Android功能实现了< code>MethodChannel,所以我不想添加额外的插件。

我只需添加以下(Java)代码:

case METHOD_GET_SDK_INT:
    result.success(Build.VERSION.SDK_INT);
    break;

在metodCall处理程序中:

java prettyprint-override">public class MainActivity extends FlutterActivity {
    
    ...

    private static final String METHOD_GET_SDK_INT = "getSdkInt";

    @Override
    public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
        super.configureFlutterEngine(flutterEngine);
        new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL).setMethodCallHandler(
                (call, result) -> {
                    switch (call.method) {
    
                    ...
                    
                    // New code for returning the Android SDK version
                    case METHOD_GET_SDK_INT:
                        result.success(Build.VERSION.SDK_INT);
                        break;

                    ...

然后,在Dart中,我使用:

final int _androidSdkInt = await platform.invokeMethod('getSdkInt');
祁嘉瑞
2023-03-14

您可以使用设备信息包获取设备信息

https://pub.dev/packages/device_info

你可以得到所有这些信息

var androidInfo = await DeviceInfoPlugin().androidInfo;

  var release = androidInfo.version.release;
  var sdkInt = androidInfo.version.sdkInt;
  var manufacturer = androidInfo.manufacturer;
  var model = androidInfo.model;

  print('Android $release (SDK $sdkInt), $manufacturer $model');
汪晨
2023-03-14

使用device_info插件获取SDK版本:

var info = await DeviceInfoPlugin().androidInfo;
var sdk = info.version.sdkInt;

然后像这样使用它

Column(
  children: [
    if (sdk > 24) Text('Good'), // Prints only for devices running API > 24
    Text('Morning')
  ],
)

如果您不想使用If,您可以检查此答案以了解其他选项。

 类似资料:
  • 问题内容: 您如何在Tkinter中显示和隐藏小部件?我想有一个输入框,但不要一直显示它。有人可以向我展示在tkinter中显示和隐藏条目小部件和其他小部件的功能吗?我希望能够在没有多个帧的情况下执行此操作。 问题答案: 这已经在stackoverflow上得到了回答。简短的答案是,您可以使用grid_remove,如果先前是通过网格添加的,则将导致该小部件被删除。记住小部件的位置,因此只需简单地

  • 问题内容: 我正在尝试创建一个程序,该程序执行一系列给定的用户输入。仅在某些情况下才需要几个用户输入,并且如果可能的话,我想仅在选择一个Checkbutton(表示存在要求这些输入的情况)时显示这些输入值的Entry框和Labels。我不确定该怎么做: 将我要添加的标签和条目框放在已经存在的行之间。 取消选中“选择”按钮时,“隐藏”标签和输入框,而不进行选择,这样,如果重新选择“选择”按钮,则可以

  • 在Android中,每个子类都有一个方法,允许您修改对象的可见性 设置可见性有3个选项: 可见:呈现布局内部可见的 Flutter中的小部件是否有与上述相同的功能? 快速参考:https://developer.android.com/reference/android/view/View.html#attr_android:visibility

  • 问题内容: 这是我的代码。为什么不起作用? 问题答案: 您正在加载DOM之前运行代码。 尝试这个: 现场示例:

  • 问题内容: 我正在处理四组数据,每组数据都有几个时间序列。我正在使用bokeh将它们全部绘制在一起,结果如下所示: 多线图散景与小部件 问题在于它看起来确实很乱,所以我想使用multiselect小部件来显示/隐藏所有多行线组(4)。如何在绘图中使用多选小部件? 提前致谢。 问题答案: 此PR中刚刚在版本0.12.1中添加了对执行此操作的支持(使用MultiSelect小部件隐藏/显示行):htt

  • 问题内容: 在Android中,每个子类都有一个方法,可让您修改对象的可见性 设置可见性有3个选项: 可见:在布局内渲染可见 看不见:隐藏,但留下的间隙等于可见时将占据的间隙 消失:隐藏,并将其完全从布局中删除。这是因为如果它和人 Flutter中的小部件是否具有与上述等同的功能? 快速参考:https : //developer.android.com/reference/android/vie