布局中较高的按钮

Posted

技术标签:

【中文标题】布局中较高的按钮【英文标题】:Higher buttons in lay-out 【发布时间】:2017-01-16 03:21:49 【问题描述】:

我的布局底部有 4 个按钮,我希望它们的位置比现在高一点。

我更改了大小和边距等,但这似乎不起作用。它们被放置得更高,而不仅仅是小块。

就像我展示的图片一样,在左侧,屏幕底部的按钮放置正确,在右侧,它们太低了。我需要更改什么代码来解决这个问题,并让它们变得相同?

Klik hier om de afbeelding te bekijken

这是左图中的xml代码,按钮放置正确:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:baselineAligned="false"
    android:measureWithLargestChild="false"
    android:orientation="vertical"
    tools:context="com.example.rodekruis.Contact" >

    <FrameLayout
        android:layout_
        android:layout_>

    <ImageView
        android:layout_
        android:layout_
        android:layout_marginBottom="20dp"
        android:src="@drawable/rkz_logo"
        android:layout_gravity="left" 
        android:layout_marginLeft="1dp"/>

     <ImageView
        android:id="@+id/imageButton1"
        android:layout_
        android:layout_
        android:layout_marginBottom="20dp"
        android:layout_marginRight="40dp"
        android:layout_marginTop="10dp"
        android:layout_gravity="right" 
        android:src="@drawable/informatiebutton" />
 </FrameLayout>

     <ScrollView
         android:id="@+id/scrollview"
         android:layout_
         android:layout_ >

    <TextView
        android:id="@+id/textView"
        android:layout_
        android:layout_
        android:layout_marginTop="30dp"
        android:layout_gravity="center"
        android:text="@string/title_activity_contact"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/black"
        android:autoLink="web" />

</ScrollView>

     <LinearLayout
        android:layout_
        android:layout_
        android:layout_marginTop="15dp"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal">

        <Button
            android:id="@+id/button11"
            style="?android:attr/buttonStyleSmall"
            android:layout_
            android:layout_
            android:layout_marginRight="5dp"
            android:layout_weight="1"
            android:text="Facebook" />

        <Button
            android:id="@+id/button12"
            style="?android:attr/buttonStyleSmall"
            android:layout_
            android:layout_
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_weight="1"
            android:text="Youtube" />

        <Button
            android:id="@+id/button13"
            style="?android:attr/buttonStyleSmall"
            android:layout_
            android:layout_
            android:layout_alignLeft="@+id/button5"
            android:layout_below="@+id/button8"
            android:layout_marginLeft="5dp"
            android:layout_weight="1"
            android:text="Twitter" />

        <Button
            android:id="@+id/button14"
            style="?android:attr/buttonStyleSmall"
            android:layout_
            android:layout_
            android:layout_alignLeft="@+id/button5"
            android:layout_below="@+id/button8"
            android:layout_marginLeft="5dp"
            android:layout_weight="1"
            android:text="LinkedIn" />

    </LinearLayout>
</LinearLayout>

这是正确的页面,bezoekpage,按钮太低了:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:orientation="vertical"
    tools:context="com.example.rodekruis.Bezoek"> 


    <LinearLayout 
    android:layout_
    android:layout_
    android:orientation="vertical"
    tools:context="com.example.rodekruis.MainActivity">

    <FrameLayout
        android:layout_
        android:layout_>

    <ImageView
        android:layout_
        android:layout_
        android:layout_marginBottom="20dp"
        android:src="@drawable/rkz_logo"
        android:layout_gravity="left" 
        android:layout_marginLeft="1dp"/>

     <ImageView
        android:id="@+id/imageButton1"
        android:layout_
        android:layout_
        android:layout_marginBottom="20dp"
        android:layout_marginRight="40dp"
        android:layout_marginTop="10dp"
        android:layout_gravity="right" 
        android:src="@drawable/informatiebutton" />
 </FrameLayout>



    <TextView
        android:id="@+id/textView1"
        android:layout_
        android:layout_
        android:layout_gravity="center"
         android:text="@string/title_activity_bezoek"
        android:layout_marginTop="30dp"
        android:textAppearance="?android:attr/textAppearanceSmall"
         android:textColor="@color/black"
    />



    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical"/>
        <TextView
            android:id="@+id/textView2"
            android:layout_
            android:layout_
            android:layout_gravity="center"
            android:text="Klik hier voor de uitgebreide bezoektijden."
            android:textAppearance="?android:attr/textAppearanceSmall"
            />
    <LinearLayout
        android:layout_
        android:layout_
        android:layout_marginBottom="80dp"
        android:orientation="horizontal">

        <Button
            android:id="@+id/button11"
            style="?android:attr/buttonStyleSmall"
            android:layout_
            android:layout_
            android:layout_marginRight="5dp"
            android:layout_weight="1"
            android:text="Facebook" />

        <Button
            android:id="@+id/button12"
            style="?android:attr/buttonStyleSmall"
            android:layout_
            android:layout_
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_weight="1"
            android:text="Youtube" />

        <Button
            android:id="@+id/button13"
            style="?android:attr/buttonStyleSmall"
            android:layout_
            android:layout_
            android:layout_alignLeft="@+id/button5"
            android:layout_below="@+id/button8"
            android:layout_marginLeft="5dp"
            android:layout_weight="1"
            android:text="Twitter" />

        <Button
            android:id="@+id/button14"
            style="?android:attr/buttonStyleSmall"
            android:layout_
            android:layout_
            android:layout_alignLeft="@+id/button5"
            android:layout_below="@+id/button8"
            android:layout_marginLeft="5dp"
            android:layout_weight="1"
            android:text="LinkedIn" />

    </LinearLayout>
        </LinearLayout>
</LinearLayout>

【问题讨论】:

你真正想要什么?添加具有所需结果的图像? 我复制了你的第二个布局文件并检查了它,按钮的位置完全符合你的要求。 Sohail Zahid,当您点击图片时,您会看到 2 个屏幕。左边的,底部有 4 个按钮,离屏幕的整个底部只有一点点。右边的按钮具有相同的按钮,但它们位于屏幕下方。我希望它们的高度相同。 【参考方案1】:

首先停止为您的布局提供固定高度和宽度,这会为多种尺寸的设备带来问题。请按照一个好的教程或书籍来开始 android。

在第一个布局中,您将滚动高度修复定义为 364。 在第二个布局中,文本视图和线性布局结合了高度 280+95=375 并且包括 textview margintop=30dp 它变成了 405。这就是为什么你的布局按钮在底部。 在第二个布局中使用滚动视图,高度也为 364。这将解决您的问题。

【讨论】:

【参考方案2】:

我更正了您的代码。如果有帮助,请将此答案设为正确

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:orientation="vertical"
tools:context="com.example.rodekruis.Bezoek">



<LinearLayout
    android:layout_
    android:layout_
    android:orientation="vertical"
    tools:context="com.example.rodekruis.MainActivity">

    <FrameLayout
        android:layout_
        android:layout_>

        <ImageView
            android:layout_
            android:layout_
            android:layout_marginBottom="20dp"
            android:src="@drawable/rkz_logo"
            android:layout_gravity="left"
            android:layout_marginLeft="1dp"/>

        <ImageView
            android:id="@+id/imageButton1"
            android:layout_
            android:layout_
            android:layout_marginBottom="20dp"
            android:layout_marginRight="40dp"
            android:layout_marginTop="10dp"
            android:layout_gravity="right"
            android:src="@drawable/informatiebutton" />
    </FrameLayout>



    <TextView
        android:id="@+id/textView1"
        android:layout_
        android:layout_
        android:layout_gravity="center"
        android:text="@string/title_activity_bezoek"
        android:layout_marginTop="30dp"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/black"
        />



    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical"/>
    <TextView
        android:id="@+id/textView2"
        android:layout_
        android:layout_
        android:layout_gravity="center"
        android:text="Klik hier voor de uitgebreide bezoektijden."
        android:textAppearance="?android:attr/textAppearanceSmall"
        />

</LinearLayout>
<LinearLayout
    android:layout_
    android:layout_
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="10dp"
    android:orientation="horizontal">

    <Button
        android:id="@+id/button11"
        style="?android:attr/buttonStyleSmall"
        android:layout_
        android:layout_
        android:layout_marginRight="5dp"
        android:layout_weight="1"
        android:text="Facebook" />

    <Button
        android:id="@+id/button12"
        style="?android:attr/buttonStyleSmall"
        android:layout_
        android:layout_
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_weight="1"
        android:text="Youtube" />

    <Button
        android:id="@+id/button13"
        style="?android:attr/buttonStyleSmall"
        android:layout_
        android:layout_
        android:layout_alignLeft="@+id/button5"
        android:layout_below="@+id/button8"
        android:layout_marginLeft="5dp"
        android:layout_weight="1"
        android:text="Twitter" />

    <Button
        android:id="@+id/button14"
        style="?android:attr/buttonStyleSmall"
        android:layout_
        android:layout_
        android:layout_alignLeft="@+id/button5"
        android:layout_below="@+id/button8"
        android:layout_marginLeft="5dp"
        android:layout_weight="1"
        android:text="LinkedIn" />

</LinearLayout>

【讨论】:

以上是关于布局中较高的按钮的主要内容,如果未能解决你的问题,请参考以下文章

为啥转换后的 UIView 会与层次结构中较高的其他视图重叠?

带删除按钮的EditText

六、PC端全局响应式布局

关于Android布局你不知道的

网页布局经验分享

移动端高清屏适配方案