Android嵌套的线性布局 [英] Android nested linear layout

查看:94
本文介绍了Android嵌套的线性布局的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在阅读《绝对入门的Android应用程序第三版》一书中的教程,并且在API 19(4.4.2)中陷入了嵌套的LinearLayout for android项目的问题:父LinearLayout是水平的,应该容纳两个垂直的子级LinearLayout,最终结果应如下所示:

I am following tutorial from the book "Android Apps for Absolute Beginners 3rd Edition", and I am stuck with nested LinearLayout for android project in API 19 (4.4.2): Parent LinearLayout is horizontal and it is supposed to hold two child LinearLayout which are vertical and the end result should be like this:

但是我得到的是:

我尝试了几次,在书中交叉检查了代码,并进行了解释,但我做对了.这是activity_main.xml的内容:

I tried several times, cross checked code in book, and explanations but I can't get it right. Here is content of activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:orientation="horizontal" android:background="@drawable/galaxyinfoscreen" >

    <LinearLayout android:orientation="vertical" android:layout_margin="12dip" 
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:background="#00000000">

        <TextView android:text="@string/hello_world" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_marginLeft="48dip" android:textStyle="bold" />

        <TextView android:text="@string/galaxy_name" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content" />

        <TextView  android:text="@string/galaxy_solar" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content" />

        <TextView android:text="@string/galaxy_habit" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content" />

        <TextView android:text="@string/galaxy_colony" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content" />

        <TextView android:text="@string/galaxy_pop" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content" />

        <TextView android:text="@string/galaxy_fleet" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content" />

        <TextView android:text="@string/galaxy_ships" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout android:orientation="vertical" android:layout_margin="33dip"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:background="#00000000" >

        <TextView android:text="@string/name_data" android:textColor="#FFFFFF"
            android:layout_width="wrap_content"  android:layout_height="wrap_content"
            android:id="@+id/name" />

        <TextView  android:text="@string/solar_data" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:id="@+id/solar" />

        <TextView android:text="@string/habit_data" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:id="@+id/habit"/>

        <TextView android:text="@string/colony_data" android:textColor="#FFFFFF" 
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:id="@+id/colony" />

        <TextView android:text="@string/pop_data" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:id="@+id/pop" />

        <TextView android:text="@string/fleet_data" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:id="@+id/fleet" />

        <TextView android:text="@string/ships_data" android:textColor="#FFFFFF"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
             android:id="@+id/ships"/>
    </LinearLayout>
</LinearLayout>

此文件可能缺少什么?我应该怎么做才能获得理想的结果?

推荐答案

尝试一下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/galaxyinfoscreen"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="48dip"
        android:text="@string/hello_world"
        android:textColor="#FFFFFF"
        android:textStyle="bold" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="12dip"
            android:background="#00000000"
            android:orientation="vertical" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/galaxy_name"
                android:textColor="#FFFFFF" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/galaxy_solar"
                android:textColor="#FFFFFF" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/galaxy_habit"
                android:textColor="#FFFFFF" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/galaxy_colony"
                android:textColor="#FFFFFF" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/galaxy_pop"
                android:textColor="#FFFFFF" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/galaxy_fleet"
                android:textColor="#FFFFFF" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/galaxy_ships"
                android:textColor="#FFFFFF" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="12dip"
            android:background="#00000000"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/name_data"
                android:textColor="#FFFFFF" />

            <TextView
                android:id="@+id/solar"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/solar_data"
                android:textColor="#FFFFFF" />

            <TextView
                android:id="@+id/habit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/habit_data"
                android:textColor="#FFFFFF" />

            <TextView
                android:id="@+id/colony"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/colony_data"
                android:textColor="#FFFFFF" />

            <TextView
                android:id="@+id/pop"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/pop_data"
                android:textColor="#FFFFFF" />

            <TextView
                android:id="@+id/fleet"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/fleet_data"
                android:textColor="#FFFFFF" />

            <TextView
                android:id="@+id/ships"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/ships_data"
                android:textColor="#FFFFFF" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

"Glaxy信息屏幕" TextView位于第一个垂直的LinearLayout中.由于此文本视图由于其边距和文本长度而占用了更多空间,因此为第二线性布局留出了较少的空间,从而导致了第二次垂直布局的文本换行.

"Glaxy Information Screen" TextView is inside first verical LinearLayout. As this text view is taking more space due to its margin and text length hence leaving less space for second linearlayout, resulting into wrap of text for sencond verical layout.

要解决此问题,请再添加一个水平方向为水平的线性布局作为垂直布局的父级,并添加"Glaxy Information Screen"文本视图作为顶级父级的直接子级.您可能需要对边距值进行一些调整以使布局保持良好状态.

To solve the problem, add one more linear layout with orientation as horizontal as parent of both the vertical layout and add the "Glaxy Information Screen" text view as direct child of top parent. you may need to make some adjustment to the margin values to aling the layouts.

这篇关于Android嵌套的线性布局的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆