我的XML文件包含两行按钮,一行停留在顶部,另一行停留在底部。在两行按钮之间,我有一个来自视图类的画布。
然而,当程序运行时,底行的按钮不会出现。它似乎被画布所覆盖。我能做些什么才能将最底层的按钮放在画布前面?或者我如何限制画布的高度?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/addbutton"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Add"
android:textSize="9dip" />
<Button
android:id="@+id/deletebutton"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/addbutton"
android:text="Delete"
android:textSize="9dip" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom" >
<Button
android:id="@+id/nextbutton"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Next"
android:textSize="9dip" />
<Button
android:id="@+id/savebutton"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
android:textSize="9dip" />
</LinearLayout>
</RelativeLayout>
我的主要活动代码:
public class MainActivity extends Activity {
RelativeLayout layout;
static String equation, eqn;
public static StartDraw sd; //view class
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sd = new StartDraw(this);
final RelativeLayout layout = (RelativeLayout) findViewById(R.id.relativeLayout);
final RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.MATCH_PARENT);
lp.addRule(RelativeLayout.BELOW, R.id.addbutton);
sd.setLayoutParams(lp);
mainLayout.addView(sd);
addbutton.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
}
});
}
答案 0 :(得分:0)
你做这样的事情
xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:weightSum="2"
android:id="@+id/topLinear"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:orientation="horizontal" >
<Button
android:layout_weight="1"
android:id="@+id/addbutton"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add"
android:textSize="9dip" />
<Button
android:layout_weight="1"
android:id="@+id/deletebutton"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="9dip" />
</LinearLayout>
<LinearLayout
android:weightSum="2"
android:id="@+id/bottomLinear"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true" >
<Button
android:layout_weight="1"
android:id="@+id/nextbutton"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Next"
android:textSize="9dip" />
<Button
android:layout_weight="1"
android:id="@+id/savebutton"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save"
android:textSize="9dip" />
</LinearLayout>
<LinearLayout
android:id="@+id/middleLinear"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:layout_above="@id/bottomLinear"
android:layout_below="@id/topLinear">
</LinearLayout>
</RelativeLayout>
现在在代码中你可以在中间线性布局中添加画布
答案 1 :(得分:0)
这是一个常见的问题,简单给画布赋予0.97的重量,你的按钮会出现挑衅。
你必须设置画布的宽度,高度和重量,如下所示
假设canvas在LinearLayout中,那么
<LinearLayout
android:id="@+id/canvas"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weight="0.97"
android:orientation="vertical">
</LinearLayout>