【问题标题】:Buttons are not shown in real device but shown in emulator in android按钮未显示在真实设备中,但显示在 android 的模拟器中
【发布时间】:2016-03-14 04:40:34
【问题描述】:

我有一个linearlayout,它有两个按钮cancel & download,分别用于取消或下载图像。当我在模拟器 [Emulator is Nexus-5] 上运行应用程序时一切正常,这两个按钮都会显示,但是当我在真实设备上测试我的应用程序时 [我的设备是 samsung-core]。

图片是从互联网上加载的,然后这个 LiarLayout 会显示出来,最初它是隐藏的。

这是我设备上的screenshot

这是我的模拟器screenshot

这是布局文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="16dp">

    <EditText
        android:id="@+id/et_pic_url"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter pic url here" />

    <Button
        android:id="@+id/bt_pic_search"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Send" />

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <ImageView
        android:id="@+id/iv_pic"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:paddingTop="10dp"
         />
</LinearLayout>

<LinearLayout
    android:id="@+id/linear_layout_download_cancel_button"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="horizontal"
    android:paddingLeft="32dp"
    android:paddingRight="32dp">

    <Button
        android:id="@+id/bt_cancel_download"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Cancel" />

    <Button
        android:id="@+id/bt_pic_download"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Download" />
</LinearLayout>

我猜这是因为屏幕高度。但是为什么这两个按钮被隐藏了。是什么让我的布局文件中发生了这种奇怪的事情。

谢谢 - 苏拉杰

【问题讨论】:

  • 您的 2 个按钮被隐藏,因为您的布局比屏幕尺寸长

标签: android android-layout android-emulator


【解决方案1】:
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
android:weightsum="10"

>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:orientation="vertical"
    android:padding="16dp"
android:weight="1"
>

    <EditText
        android:id="@+id/et_pic_url"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter pic url here" />

    <Button
        android:id="@+id/bt_pic_search"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Send" />

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
android:weight="8"
    >

    <ImageView
        android:id="@+id/iv_pic"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:paddingTop="10dp"
         />
</LinearLayout>

<LinearLayout
    android:id="@+id/linear_layout_download_cancel_button"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="horizontal"
    android:paddingLeft="32dp"
    android:paddingRight="32dp">

    <Button
        android:id="@+id/bt_cancel_download"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Cancel" />

<Button
        android:id="@+id/bt_pic_download"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Download" />
</LinearLayout>

enter code here

Your imageview is match parent, so it cover the screen, use the above code. it will workl fine

【讨论】:

    【解决方案2】:

    试试 ScrollView。按钮可能位于您的 ImageView(并设置您的图像视图属性“wrap_content”)或您的布局下方。

    根据你的代码演示如下:

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
    
            <LinearLayout
    
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:padding="16dp">
    
                <EditText
                    android:id="@+id/et_pic_url"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="Enter pic url here" />
    
                <Button
                    android:id="@+id/bt_pic_search"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:text="Send" />
    
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
    
                <ImageView
                    android:id="@+id/iv_pic"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:paddingTop="10dp"
                    />
            </LinearLayout>
    
            <LinearLayout
                android:id="@+id/linear_layout_download_cancel_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="horizontal"
                android:paddingLeft="32dp"
                android:paddingRight="32dp">
    
                <Button
                    android:id="@+id/bt_cancel_download"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="Cancel" />
    
                <Button
                    android:id="@+id/bt_pic_download"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="Download" />
            </LinearLayout>
        </LinearLayout>
    </ScrollView>
    

    【讨论】:

      【解决方案3】:

      因为设备中没有空间显示按钮。如下操作

      <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                      android:layout_width="match_parent"
                      android:layout_height="match_parent">
      
      
          <LinearLayout
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:orientation="vertical"
                  android:padding="16dp"
          android:layout_above="@+id/linear_layout_download_cancel_button"
          >
      
              <EditText
                      android:id="@+id/et_pic_url"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:hint="Enter pic url here"/>
      
              <Button
                      android:id="@+id/bt_pic_search"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:layout_gravity="center_horizontal"
                      android:text="Send"/>  
      
      
              <ImageView
                      android:id="@+id/iv_pic"
                      android:layout_width="match_parent"
                      android:layout_height="match_parent"
                      android:layout_weight="2"
                      android:paddingTop="10dp"
              />
          </LinearLayout>
      
          <LinearLayout
                  android:id="@+id/linear_layout_download_cancel_button"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:layout_weight="1"
                  android:orientation="horizontal"
                  android:paddingLeft="32dp"
                  android:paddingRight="32dp"
                  android:layout_alignParentBottom="true"
          >
      
              <Button
                      android:id="@+id/bt_cancel_download"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:layout_weight="1"
                      android:text="Cancel"/>
      
              <Button
                      android:id="@+id/bt_pic_download"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:layout_weight="1"
                      android:text="Download"/>
          </LinearLayout>
      </RelativeLayout>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多