为什么设计(activity_main.xml)和实际应用看起来不同?

Why Design(activity_main.xml) and actual app look different?

我是Android java

开发的新手

我的 activity_main.xml 文件是这样的

但是当我 运行 这个应用程序在我的像素 3 phone 比它看起来像

为什么这个设计不同?

检查你的样式文件。 默认情况下使用对话框。 你可以用无对话框改变它

对不起,我是说 行

  <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

您可以在没有操作栏的情况下更改主题

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

有很多变体

如背景所示,您忽略了缺少的约束。使用 ConstraintLayout 时,您必须至少提供一个水平约束和一个垂直约束,否则视图可能会跳跃,我相信 IDE 给了你那个错误。

如果你想要像设计一样的全屏主题(activity_main.xml):

解决方案 1:进入清单并使用全屏主题。

 <activity
   . 
   .
   android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

解决方案 2:

只需将以下属性添加到您当前的主题中:

<item name="android:windowFullscreen">true</item>

例如:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/orange</item>
<item name="colorPrimaryDark">@android:color/holo_orange_dark</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>

解决方案 3 :

 public class MainActivity extends AppCompatActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.main);
    }

}

要管理您的按钮,请阅读 Dorian 对设计和实际应用看起来相同的回答