RelativeLayout - 动态重新定位视图

时间:2012-10-04 14:38:34

标签: android

我正在尝试在屏幕上上下移动工具栏的简单任务,但它只能工作一次。按下按钮的工具栏移动到顶部,但即使出现“移动到底部”消息,我也无法将其恢复到底部。见代码:

    boolean toolBarAtBottom = true;

    private void moveToolBar(){
        LinearLayout toolBar = (LinearLayout) findViewById(R.id.toolBar);
        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                            LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

        lp.height = toolBar.getHeight();

        if (toolBarAtBottom){ 
            lp.addRule(RelativeLayout.ALIGN_TOP, RelativeLayout.TRUE);
        }else{  
            lp.addRule(RelativeLayout.ALIGN_BOTTOM, RelativeLayout.TRUE);
            Toast.makeText(DrawActivity.this, "move to bottom", Toast.LENGTH_SHORT).show();
        }
        toolBar.setLayoutParams(lp);
        toolBarAtBottom = !toolBarAtBottom;
    }

任何想法如何让它不止一次?

1 个答案:

答案 0 :(得分:3)

您想使用RelativeLayout.ALIGN_PARENT_BOTTOM代替RelativeLayout.ALIGN_BOTTOMALIGN_BOTTOM将视图底部与另一个视图的底部对齐。 ALIGN_PARENT_BOTTOM会将其移至其父容器的底部。

以下是文档的链接:http://developer.android.com/reference/android/widget/RelativeLayout.html