在Android中使用Layouts定位按钮

时间:2013-01-07 21:58:31

标签: android android-layout

几个小时后,我无法修复活动底部的按钮。要么是隐形的要么是顶部的。我也试过没有相对布局,我尝试添加另一个线性布局,但我仍然不知道如何设置这个按钮。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".News" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/news" />

    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />


    <Button
        android:id="@+id/newsbutton"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:text="Chiudi" />

</LinearLayout>
</RelativeLayout>

4 个答案:

答案 0 :(得分:1)

<RelativeLayout
        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:orientation="vertical" >

    <ImageView
            android:id="@+id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/news" />

    <WebView
            android:id="@+id/webView1"
            android:layout_below="@id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />


    <Button
            android:id="@+id/newsbutton"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_alignParentBottom="true"
            android:text="Chiudi" />
</RelativeLayout>

答案 1 :(得分:0)

首先,您在旧版Android布局编辑器中发出警告,表示RelativeLayout或LinearLayout无用。那应该是你的暗示。注意警告,它们在大多数时候都很有帮助。

的确,您可以摆脱LinearLayout

所以,解决方案是:

  1. 删除LinearLayout。
  2. android:layout_below="@+id/imageView1"添加到WebView。
  3. android:layout_alignParentBottom="true"添加到按钮。
  4. android:contentDescription添加到ImageView。
  5. 使用@string而不是硬编码字符串。
  6. 可选步骤不会加粗,它们会删除警告。

    在Android 4.1.2下测试的整个工作代码:

    <RelativeLayout
        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:orientation="vertical" >
    
    <ImageView
            android:id="@+id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:contentDescription="TODO: DESCRIPTION"
            android:src="@drawable/ic_launcher" />
    
    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/imageView1" />
    
    
    <Button
            android:id="@+id/newsbutton"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_alignParentBottom="true"
            android:text="Chiudi" />
    
    </RelativeLayout>
    

答案 2 :(得分:0)

将以下内容粘贴到按钮组件中;)

    android:layout_marginBottom="147dp"
    android:layout_marginTop="50dp"
    android:layout_marginleft="50dp"
    android:layout_marginRight="47dp"

只播放数字,我肯定会得到它的信息:)

答案 3 :(得分:-1)

只需在按钮中添加android:layout_below =“@ id / webView1”。

如果您使用LinearLayout,您可以设置应填充空白区域的Widget,如下所示:layout_height =“0dp”和layout_weight =“1”。这也应该起到作用。