`

statckoverflow里关于RelativeLayout不错的一个布局

阅读更多


Question:

Hi all,

I need your help!

I need to locate text on view as showed on the picture:

text 'Some more text' should be located in bottom|center_horizontal

text 'Short text' should be located on with align right, but about 10% from the top of the screen

text 'x.x.x.x' should be aligned to the center of the screen (right/bottom align of the 1st quater)

text 'Some long text ..' should be aligned to the top/left of the 3-rd quater of the screen, but it should cross the center_horizontal of the screen

eh ... something like this .. I hope, you're understand me :)

http://www.freeimagehosting.net/image.php?ca27bc012e.png

Please, help me!!!

Thanks for your help!

 

 

Answer:

Here a couple quick guidelines:

  1. Android Layouts tend to be much more deeply nested than you would normally expect. You often end up with "empty" layouts that just take up space so that other elements lay out correctly.
  2. RelativeLayout is your friend whenever you are aligning text to a particular edge.
  3. Use the padding settings to put text "a little away from" an edge.
  4. Gravity aligns the text within that TextView or button.

Looking again I your diagram, I reproduced it this way:

  1. Start with a relative layout ('fill_content') that takes up the entire screen.
  2. Put in the "short text" and "some more text" by anchoring to the top and bottom.
  3. Put a zero-width item with the property "centerInParent" for a point in the middle of the screen.
  4. Put the remaining to items above and aligned with that centerpoint.

Unfortunately, nothing in step 4 worked correctly. Nothing like "layout_below" worked when the referenced item was a centerInParent item. with relative layouts to step 3. Turns out it had to do with failing to fill_content on the top level. Yes, the layouts are tricky, and I wish there was a debugger for them.

Here's the correct version:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/r1"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
    android:id="@+id/short_text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Short Text"
    android:gravity="right"
    android:layout_marginTop="30dip"
    android:layout_alignParentTop="true" />
<TextView
    android:id="@+id/more_text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Some More Text"
    android:gravity="center"
    android:layout_alignParentBottom="true" />
  <TextView android:id="@+id/centerpoint"
    android:layout_centerInParent="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:width="0dip"
    android:height="0dip"
    />
  <TextView android:id="@+id/run_fox"
    android:text="Run, fox, run!"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@id/centerpoint"
    android:layout_toLeftOf="@id/centerpoint" 
    />
<TextView
    android:layout_below="@id/centerpoint"
    android:text="The quick brown fox jumped over the lazy dog, who had been a frog, and then got features and ran slowly."
    android:layout_alignRight="@id/centerpoint"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
 </RelativeLayout>
 注意上面的这段代码,这段代码是精华:
 <TextView android:id="@+id/centerpoint"
    android:layout_centerInParent="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:width="0dip"
    android:height="0dip"
    />
 
分享到:
评论

相关推荐

    Android中使用RelativeLayout完成的梅花布局教学案例任务说明.pdf

    在Android开发中,界面设计是至关重要的一个环节,而`RelativeLayout`是Android提供的一种布局管理器,它允许我们在界面上灵活地安排各个组件的位置,基于它们之间的相对位置关系。本篇教学案例旨在通过一个梅花布局...

    相对布局之RelativeLayout

    在Android应用开发中,`RelativeLayout`是Android布局体系中非常重要的一种布局方式,它以其灵活性和强大的定位能力受到开发者们的喜爱,特别是在游戏开发、相机应用以及增强现实(AR)项目中,`RelativeLayout`更是...

    RelativeLayout 布局练习

    总之,`RelativeLayout`是Android布局设计中的一个重要工具,通过熟练掌握其属性和用法,开发者可以构建出复杂而灵活的用户界面。通过不断的实践和尝试,可以更好地理解和应用`RelativeLayout`,提升Android应用的...

    界面布局之相对布局RelativeLayout(代码)

    在Activity_07这个示例文件中,很可能包含了更多关于相对布局的实践案例和代码示例,包括如何处理嵌套的相对布局、响应点击事件、动态添加和删除组件等。通过学习和实践这些例子,开发者可以更深入地理解和掌握相对...

    RelativeLayout布局入门实例

    接下来,RelativeLayout是一个更灵活的布局,它允许子视图相对彼此或者相对于父视图的位置进行定位。RelativeLayout不依赖固定的尺寸,而是基于相互关系来确定每个视图的位置。例如,你可以设置一个按钮在另一个按钮...

    RelativeLayout相对布局属性

    上述示例中,我们创建了一个`RelativeLayout`作为根布局,并在其中放置了三个子视图:一个`TextView`、一个`Button`和一个`ImageView`。`TextView`设置为居中并顶部对齐于父容器;`Button`位于`TextView`下方且水平...

    Android 相对布局 RelativeLayout 属性

    其中,`RelativeLayout`是一种非常灵活的布局方式,它允许子视图根据其他视图的位置或者相对于其父容器的位置进行定位。通过使用一系列属性,开发者可以轻松地控制各个控件的排列方式,从而创造出复杂且美观的界面...

    LinearLayout和RelativeLayout实现精确布局-简单版

    例如,如果我们想在一个评分条和评论文本之间创建等比例的宽度,可以为它们分配相同的权重值。 接下来,我们看RelativeLayout。RelativeLayout允许子视图相对于其他视图的位置进行定位,提供更灵活的布局方式。通过...

    Android中使用RelativeLayout布局完成的登录界面教学案例任务说明.pdf

    在Android应用开发中,界面设计是至关重要的一步,而`RelativeLayout`是Android提供的一种布局管理器,它允许我们在界面上创建复杂且灵活的布局结构。本篇教学案例旨在指导学生如何利用`RelativeLayout`来实现一个...

    Android RelativeLayout实现XML布局的例子.rar

    一个Android XML布局的例子,主要利用xml文件进行布局,里边用到的是RelativeLayout。具体的本例中:  非洲草原地图:用到了FrameLayout的使用;ActivityMain演示了linerLayout。  个性化表单ActivityLayout 演示...

    android_relativeLayout_demo

    `RelativeLayout`允许开发者以相对的方式安排各个视图(View)元素,这意味着一个视图的位置可以相对于另一个视图,或者相对于父布局的边缘。本项目“android_relativeLayout_demo”是一个演示如何使用`...

    Android相对布局RelativeLayout的基本用法

    下面是一个简单的`RelativeLayout`示例,展示了一个包含两个按钮的布局,其中第二个按钮位于第一个按钮的下方,并且两者居中对齐: ```xml &lt;RelativeLayout xmlns:android=...

    Android中使用RelativeLayout完成梅花布局的代码清单.pdf

    本文主要介绍如何使用RelativeLayout来实现一个特殊的“梅花布局”。梅花布局是一种视觉效果,其中控件按照某种规律分布,类似梅花花瓣的排列方式。 首先,我们来看MainActivity.java中的代码。这个类继承自...

    Android中使用RelativeLayout布局完成的登录练习题要求说明.pdf

    在Android应用开发中,界面设计是至关重要的一步,而`RelativeLayout`是Android提供的一种常用的布局管理器,它允许我们以相对的方式定位各个UI组件。这篇练习题旨在帮助开发者熟悉并掌握`RelativeLayout`的使用方法...

    android布局属性RelativeLayout详解.

    Android 布局属性 RelativeLayout 是 Android 中常用的布局方式之一,通过它可以实现复杂的界面布局。下面是 RelativeLayout 的主要属性详解: 第一类:属性值为 true 或 false 1. android:layout_...

    Android布局控件之RelativeLayout详解

    `RelativeLayout`作为Android提供的几种基本布局之一,通过定义视图间的相对位置来构建用户界面,这种方式非常灵活,能够很好地满足复杂的UI需求。 #### 二、RelativeLayout简介 `RelativeLayout`是一种常见的布局...

    Android学习笔记14:相对布局管理器RelativeLayout

    本篇我们将深入探讨相对布局管理器(RelativeLayout),这是一种非常灵活的布局方式,允许UI元素相对于彼此或父布局进行定位。在Android学习笔记14中,我们将详细解析RelativeLayou的使用方法和关键特性。 ...

    Android_Layout_之_RelativeLayout_代码实现相对布局

    下面是一个使用 RelativeLayout 实现相对布局的示例代码: ```java package com.farproc.RLTest; import android.app.Activity; import android.os.Bundle; import android.widget.*; import android.view.*; ...

    Android应用开发-RelativeLayout布局.pptx

    在Android应用开发中,`RelativeLayout` 是一个常用的布局管理器,它允许开发者通过相对位置来组织界面元素。这种布局方式提供了灵活的定位机制,可以根据一个视图相对于另一个视图的位置来确定每个视图的位置。在...

    android实现自定义RelativeLayout可拖动、缩放、旋转TextView

    综上所述,实现这样一个自定义RelativeLayout涉及了Android触摸事件处理、手势识别、布局参数调整等多个方面,这不仅提升了用户体验,也为开发者提供了更丰富的界面交互设计可能性。在实践中,需要注意性能优化和...

Global site tag (gtag.js) - Google Analytics