【问题标题】:Buttons not showing in Android emulator on Android studioAndroid Studio 上的 Android 模拟器中未显示按钮
【发布时间】:2021-08-31 10:26:14
【问题描述】:

我正在尝试通过按钮为我的项目制作一个类似用户的按钮导航,但是每​​当我运行 android 模拟器时,我添加的按钮设计根本没有显示,这令人困惑,因为我不知道为什么它根本没有显示,我对 android studio 有一些经验,但在屏幕空白之前我从来没有遇到过这个问题。这是我的设计截图,还有我运行模拟器时的设计截图。

这是设计的文字

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">


<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:layout_marginStart="101dp"
    android:layout_marginLeft="101dp"
    android:layout_marginTop="213dp"
    android:layout_marginEnd="123dp"
    android:layout_marginRight="123dp"
    android:layout_marginBottom="470dp"
    android:text="@string/identify_the_car_make" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:layout_marginStart="147dp"
    android:layout_marginLeft="147dp"
    android:layout_marginTop="277dp"
    android:layout_marginEnd="176dp"
    android:layout_marginRight="176dp"
    android:layout_marginBottom="406dp"
    android:text="@string/hints" />

<Button
    android:id="@+id/button2"
    android:layout_width="204dp"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:layout_marginStart="89dp"
    android:layout_marginLeft="89dp"
    android:layout_marginTop="326dp"
    android:layout_marginEnd="118dp"
    android:layout_marginRight="118dp"
    android:layout_marginBottom="357dp"
    android:text="@string/identify_the_car_image" />

<Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:layout_marginStart="121dp"
    android:layout_marginLeft="121dp"
    android:layout_marginTop="376dp"
    android:layout_marginEnd="149dp"
    android:layout_marginRight="149dp"
    android:layout_marginBottom="307dp"
    android:text="@string/advanced_level" />
</RelativeLayout>

【问题讨论】:

    标签: java android android-studio


    【解决方案1】:

    这可能是因为:

    1. 正如@fjmarquez 所说,按钮不在屏幕上。因为无论您的应用程序将安装什么设备,它都会静态地保留该值。边距100dp的平板会看起来比手机小,即使是5英寸屏幕的手机和其他英寸的设备也会有差异。

    2. 您忘记添加setContentView()。

    我建议将ConstraintLayout 用于复杂视图,如果您的页面很简单,请使用LinearLayour。对于您的情况,您可以使用LinearLayour 代替重心。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical">
    
    
        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <Button
            android:id="@+id/button2"
            android:layout_width="204dp"
            android:layout_height="wrap_content" />
    
        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
    

    【讨论】:

      【解决方案2】:

      元素可能不在屏幕上,这可能是由边距引起的。

      尽量不要同时使用margin start和margin left或margin end和margin right。看看this就明白了。

      我推荐使用约束布局。

      【讨论】:

        【解决方案3】:

        我建议使用约束布局,因为不推荐使用相对布局。

        在以下link阅读有关它的文档

        【讨论】:

        • 我不认为相对布局已被弃用。 AFAIK 它还在那里。
        猜你喜欢
        • 1970-01-01
        • 2016-12-28
        • 1970-01-01
        • 2023-04-10
        • 2021-08-04
        • 2017-08-06
        • 2021-06-18
        • 2019-03-24
        • 2015-04-30
        相关资源
        最近更新 更多