我正在为SPen开发一个Android应用程序。我在 LinearLayout 中的底部菜单显示在 ReletiveLayout 中的 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>
答案 0 :(得分:1)
我认为我误解了,但在这种情况下,LinearLayout
垂直orientation
可能会更好。这样您就可以使用weightSum
。将weightSum
设置为4,然后将菜单的每个LinearLayout
的权重设置为1,将RelativeLayout
权重设置为2,或根据您的需要进行调整。
另请注意,RelativeLayout
没有orientation
属性。使用weights
和weightSum
时,您希望每个width
的{{1}} View
0 dp
和horizontal orientation
设置为height
0dp
vertical orientation