【问题标题】:Android: Menu on bottom of layoutAndroid:布局底部的菜单
【发布时间】:2013-05-30 02:18:57
【问题描述】:

我正在为 SPen 开发一个 Android 应用程序。我在将 LinearLayout 中的底部菜单显示在 ReliveLayout 中的 SCanvasView 下方时遇到了一些问题。它必须是我在 canvas_container 中设置的属性,因为当我将 canvas_container 的高度设置为特定大小时,我可以显示底部菜单。

我给底部菜单的属性是 android:layout_alignParentBottom="true"。

为了简化布局:我只想要一个菜单​​栏在顶部和底部(都包含 ImageViews)和它们之间的空间被一个 SCanvasView 和一个 ImageView(两者大小相同)。

下面是一些简化的代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">    

    <LinearLayout
        android:id="@+id/menu1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">                               
        <ImageView
            android:gravity="left"
            android:id="@+id/iv_top1"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/topimage1"
            android:layout_weight=".25"/>
        <ImageView
            android:gravity="left"
            android:id="@+id/iv_top2"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/topimage2"
            android:layout_weight=".25"/>           
    </LinearLayout>

    <LinearLayout 
        android:id="@+id/menu4"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weightSum="1.0"
        android:layout_alignParentBottom="true">  
        <ImageView
            android:gravity="left"
            android:id="@+id/iv_bottom1"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/bottomimage1"
            android:layout_weight=".25"/>
        <ImageView
            android:gravity="left"
            android:id="@+id/iv_bottom1"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/bottomimage1"
            android:layout_weight=".25"/>
    </LinearLayout>

    <RelativeLayout 
        android:id="@+id/canvas_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.samsung.spensdk.SCanvasView 
            android:id="@+id/canvas_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />

        <ImageView
            android:id="@+id/imgView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"/>
    </RelativeLayout>

</RelativeLayout>

【问题讨论】:

    标签: android android-layout samsung-mobile


    【解决方案1】:

    我想我误解了,但在这种情况下,LinearLayout 与垂直 orientation 可能会更好。这样你就可以使用weightSum。将 weightSum 设置为 4,然后将菜单的每个 LinearLayout 的权重设置为 1,将 RelativeLayout 的权重设置为 2,或者根据您的需要进行调整。

    还要注意RelativeLayout 没有orientation 属性。当使用weightsweightSum 时,您希望每个Viewwidth0 dphorizontal orientationheight 设置为0dpvertical orientation

    【讨论】:

    • 不同屏幕尺寸的底部重量可能不同
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多