Flutter MediaQuery.of(上下文)中的值不正确。颤振中的大小

Flutter MediaQuery.of(上下文)中的值不正确。颤振中的大小,flutter,Flutter,请帮我解决一个关于颤振的问题。我把它们放在上下文中: 我必须创建一个响应性强的应用程序。我将使用MediaQuery.of(context).size,因此在我的世界中,我考虑: size.width>1280px=>桌面设备 size.width移动设备 769px和1279px之间的size.width=>平板电脑设备 我在android studio(ADV Manager)中创建了一个分辨率为2560px 1800px(桌面设备)的设备 我编写了一条简单的指令,以了解size.

请帮我解决一个关于颤振的问题。我把它们放在上下文中:

我必须创建一个响应性强的应用程序。我将使用MediaQuery.of(context).size,因此在我的世界中,我考虑:

  • size.width>1280px=>桌面设备
  • size.width<768px=>移动设备
  • 769px和1279px之间的size.width=>平板电脑设备
  • 我在android studio(ADV Manager)中创建了一个分辨率为2560px 1800px(桌面设备)的设备
  • 我编写了一条简单的指令,以了解size.width的值:
  • 我希望控制台将打印值2560,但它会打印1280:
    注意:我对ADV Manager提供的所有不同类型的设备(电视、手机、平板电脑、汽车和wear OS)进行了大量测试,我意识到size.width的值始终是实际值,分为两部分,例如:

    • 如果设备的宽度为1000,则size.width的值为500

    • 如果设备的宽度为2560,则size.width的值为1280

    • 等等,结果总是一样的

    我曾考虑过将size.width值乘以2(以获得实际值),但在web浏览器中,size.witdh值是正确的,因此问题只出现在模拟的android设备上


    有人知道怎么回事吗?提前谢谢。

    我想只要长宽比相同就没关系了。例如,如果要创建高度为屏幕高度1/3的容器,则无论屏幕高度是2560还是1280,其外观都将相同。

    MediaQuery.of(context).size.width*MediaQuery.of(context).devicePixelRatio以物理像素为单位获取宽度


    文档:不同设备的逻辑像素的视觉大小大致相同。物理像素是设备上实际硬件像素的大小。每个逻辑像素的物理像素数由devicePixelRatio描述。

    Textsize您也将根据纵横比计算吗?嗯,您可以。。。阿迪塔兹:在另一篇评论中,西蒙回答了我需要的,但是,为了澄清:正确,在这一点上,我完全同意你。我遇到的问题是,当我试图根据size.width确定要显示哪个容器时,让我解释一下:我有三个容器,一个用于桌面,一个用于平板电脑,一个用于移动设备。我在下一个评论中继续……如果我有一台平板电脑、移动设备或其他分辨率为1920 x 1080的设备,我希望桌面容器显示出来,即使知道它是模拟平板电脑或其他设备,但是,由于size.width不取值1920,而取值960,它向平板电脑容器显示它与桌面容器完全不同。非常感谢Simon,这正是我所需要的,再次非常感谢。