LinearLayout将TextView推出屏幕

时间:2016-03-25 20:33:12

标签: java android xml

我对Android应用开发相当新,我遇到了一些问题。

我有一个带有2个ImageButtons的LinearLayout和另一个带有TextView的LinearLayout,如你所见 -

Looks pretty-ish

但是,我尝试添加另一个LinearLayout以添加更多内容,但它开始将我的欢迎消息推出屏幕

I add another LinearLayout and this happens

这里是屏幕的XML

<?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="vertical"
          android:layout_weight="0.6"
          android:id="@+id/layout_home">

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/scrollView"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="vertical"
        android:paddingLeft="0dp"
        android:paddingRight="0dp"
        >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:measureWithLargestChild="false"
            android:longClickable="false">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Welcome"
                android:id="@+id/textView4"
                android:textSize="60dp"
                android:layout_weight="1"
                android:layout_gravity="top"/>
        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="56dp"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:background="#5cfca1">

        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="5dp"
            android:paddingRight="5dp">

            <ImageButton
                android:id="@+id/whatisit"
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:layout_weight="0.5"/>

            <ImageButton
                android:id="@+id/contact"
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:layout_weight="0.5"/>
        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingRight="5dp"
            android:paddingLeft="5dp"
            android:paddingBottom="300dp">

            <ImageButton
                android:id="@+id/howcanitreatit"
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:layout_weight="0.5"/>

            <ImageButton
                android:id="@+id/disclaimer"
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:layout_weight="0.5"
                android:adjustViewBounds="false"/>
        </LinearLayout>

    </LinearLayout>
</ScrollView>

已编辑:Styles.xml

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>


</style>

我已经查看了其他问题,但他们在设置布局方面似乎做了很多不同,并且有更多元素等等。

为什么要推出欢迎信息?我在这里做错了什么?

也可以随意仔细检查任何事情。我犯的错误越多越好

5 个答案:

答案 0 :(得分:0)

试试这个

  

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:orientation="vertical"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:measureWithLargestChild="false"
        android:longClickable="false">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Welcome"
            android:id="@+id/textView4"
            android:textSize="60dp"
            android:layout_weight="1"
            android:layout_gravity="top"/>
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:background="#5cfca1">

    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:paddingRight="5dp">

        <ImageButton
            android:id="@+id/whatisit"
            android:layout_width="fill_parent"
            android:layout_height="100dp"
            android:layout_weight="0.5"/>

        <ImageButton
            android:id="@+id/contact"
            android:layout_width="fill_parent"
            android:layout_height="100dp"
            android:layout_weight="0.5"/>
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingRight="5dp"
        android:paddingLeft="5dp"
        android:paddingBottom="300dp">

        <ImageButton
            android:id="@+id/howcanitreatit"
            android:layout_width="fill_parent"
            android:layout_height="100dp"
            android:layout_weight="0.5"/>

        <ImageButton
            android:id="@+id/disclaimer"
            android:layout_width="fill_parent"
            android:layout_height="100dp"
            android:layout_weight="0.5"
            android:adjustViewBounds="false"/>
    </LinearLayout>

</LinearLayout>

答案 1 :(得分:0)

android_height和android_width属性是告诉屏幕如何渲染,你的欢迎消息有一个fill_parent属性,基本上告诉它它应该遍布整个屏幕,改变它以包装内容,无论是现在的高度你给它的宽度可能比屏幕尺寸大,也可能是一个坏习惯,因为它不会匹配7300+不同的Android手机,作为拇指规则,你应该将这些尺寸保持在xml。 要了解更多相关信息,请阅读this文章

答案 2 :(得分:0)

如果符合您的要求,请尝试为欢迎 TextView设置固定高度。

例如:android:layout_height="65dp"

答案 3 :(得分:0)

在这部分代码中(第二LinearLayout):

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="vertical"
        android:paddingLeft="0dp"
        android:paddingRight="0dp"
        >

取出:android:layout_gravity="center"

同时从上一个android:paddingBottom="300dp"

中删除LinearLayout

这将使它显示,但是你使用的是硬编码dp值很多,这绝不是一个很好的练习,因为你必须满足许多不同的屏幕尺寸。

答案 4 :(得分:0)

尝试从第二个LinearLayout中删除以下LOC。即:LinearLayout之后的ScrollView

android:layout_gravity="center"