0

我在 Android 中创建布局时遇到问题。

我有一个线性布局,应该从上到下显示一个 TextView、EditView 和 Button。问题是当我将 TextView 的宽度和高度属性设置为“wrap_content”时,它的行为类似于“fill_parent”并以宽度和高度填充整个屏幕。作为结论,不会显示其他 2 个元素(EditView 和 Button)。

我只是无法弄清楚我做错了什么。

这是我的 XML 文件:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/app_background"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text_nickname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:gravity="center_horizontal"
        android:text="@string/label_nickname"
        android:textColor="#000000"
        android:textSize="15sp" />

    <EditText
        android:id="@+id/edit_nickname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="@string/hint_insert_nickname"
        android:shadowColor="#000000"
        android:shadowDx="-1"
        android:shadowDy="-1"
        android:shadowRadius="1"
        android:textSize="15sp" />

    <Button
        android:id="@+id/button_play"
        style="@style/MainButtonTheme"
        android:layout_marginTop="25dp"
        android:onClick="click_playButton"
        android:text="@string/button_start" />
<  /  LinearLayout>

期待您的输入。

很多问候

西吉

编辑:

主按钮样式:

    <style name="MainButtonTheme">
    <item name="android:background">@drawable/states_menu_button</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textSize">25sp</item>
    <item name="android:textColor">#000000</item>
    <item name="android:textStyle">bold</item>
</style>

编辑#2:

以下是它现在的样子和需要什么的屏幕截图:

当前状态:

在此处输入图像描述

期望状态:

在此处输入图像描述

我在手机上测试过,手机上也是这样。

4

6 回答 6

2

当我找到解决方案时,并没有正确的答案。

问题是,因为您使用了: name="android:background" 它设置的不是整个应用程序的背景,而是每个视图的背景。您应该使用:name="android:windowBackground" 仅为应用程序设置背景。

于 2014-08-28T17:37:52.213 回答
1

好的,伙计们,我发现了问题。这对我来说似乎是一个错误。

在我的样式文件中,我为整个应用程序定义了一个背景,如下所示:

    <style name="AppTheme" parent="AppBaseTheme">
    <item name="android:background">@drawable/app_background</item>
    </style>

当我删除以下行时:

<item name="android:background">@drawable/app_background</item>

带有 wrap_content 的 TextView 的行为应该如此。

我真的不知道背景图像与它有什么关系。如果有人能告诉我会很高兴:)

问候

西吉

于 2013-10-24T08:01:49.673 回答
0

试试看,我做了一些更改,即删除了样式属性:

<TextView
    android:id="@+id/text_nickname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:gravity="center_horizontal"
    android:text="label_nickname"
    android:textColor="#000000"
    android:textSize="15sp" />

<EditText
    android:id="@+id/edit_nickname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="hint_insert_nickname"
    android:shadowColor="#000000"
    android:shadowDx="-1"
    android:shadowDy="-1"
    android:shadowRadius="1"
    android:textSize="15sp" />

<Button
    android:textSize="25dp"
    android:id="@+id/button_play"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="25dp"
    android:onClick="click_playButton"
    android:text="button_start" />

于 2013-10-24T04:09:39.257 回答
0

试试这个代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"

              android:gravity="center_horizontal"
              android:orientation="vertical" >

    <TextView
            android:id="@+id/text_nickname"
            android:layout_width="10dip"
            android:layout_height="10dip"
            android:layout_marginTop="15dp"
            android:gravity="center_horizontal"

            android:textColor="#000000"
            android:textSize="15sp" />

    <EditText
            android:id="@+id/edit_nickname"
            android:layout_width="300dp"
            android:layout_height="wrap_content"

            android:shadowColor="#000000"
            android:shadowDx="-1"
            android:shadowDy="-1"
            android:shadowRadius="1"
            android:textSize="15sp" android:layout_marginLeft="3dp"/>

    <Button
            android:id="@+id/button_play"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_marginTop="25dp"
            android:onClick="click_playButton"
            android:text="Button" />
</LinearLayout>
于 2013-10-23T17:48:27.050 回答
0
// try this
<?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:background="@drawable/app_background"
    android:padding="5dp"
    android:orientation="vertical"
    android:gravity="center">
    <LinearLayout
        android:layout_height="0dp"
        android:layout_width="match_parent"
        android:layout_weight="1">
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:padding="5dp"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/text_nickname"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:text="@string/label_nickname"
                    android:textColor="#000000"
                    android:textSize="15sp" />

                <EditText
                    android:id="@+id/edit_nickname"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="top"
                    android:layout_marginTop="10dp"
                    android:hint="@string/hint_insert_nickname"
                    android:shadowColor="#000000"
                    android:shadowDx="-1"
                    android:shadowDy="-1"
                    android:shadowRadius="1"
                    android:textSize="15sp" />


            </LinearLayout>
        </ScrollView>
    </LinearLayout>
    <Button
        android:id="@+id/button_play"
        style="@style/MainButtonTheme"
        android:onClick="click_playButton"
        android:padding="5dp"
        android:text="@string/button_start" />
</LinearLayout>
于 2013-10-24T05:53:26.783 回答
-1

用相对布局试过这个,它对我有用,看看它是否有帮助。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#F88017" 
   >


    <TextView
        android:layout_centerHorizontal="true"
        android:id="@+id/text_nickname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:text="Nickname"
        android:textColor="#000000"
        android:textSize="15sp" />

    <EditText
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:layout_below="@+id/text_nickname"
        android:id="@+id/edit_nickname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="insert_nickname"
        android:shadowColor="#000000"
        android:shadowDx="-1"
        android:shadowDy="-1"
        android:shadowRadius="1"
        android:textSize="15sp" />

    <Button
           android:layout_centerHorizontal="true"
        android:layout_below="@+id/edit_nickname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="25dp"
        android:onClick="click_playButton"
        android:text="Start"
        android:textColor="#000000"
        android:textSize="25dp"
        android:textStyle="bold" />

</RelativeLayout>
于 2013-10-23T17:41:57.307 回答