按钮没有在真实设备中显示,但在android中的模拟器中显示

时间:2015-12-09 02:34:06

标签: android android-layout android-emulator

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

图像从互联网加载,然后显示此liearLayout,最初它被隐藏。

这是我设备的screenshot Device Screenshot

这是我的模拟器screenshot

Emulator 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个按钮被隐藏起来。什么使得这个奇怪的事情发生在我的布局文件中。

谢谢 - Suraj

3 个答案:

答案 0 :(得分:0)

<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

答案 1 :(得分:0)

尝试 ScrollView 。按钮可能位于ImageView下方(并设置图像视图attr“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>

答案 2 :(得分:0)

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

<?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>