将按钮带到前面

时间:2014-04-09 18:19:40

标签: android button canvas

我的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) {

            }
        });
    }

2 个答案:

答案 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>