如何以编程方式更改LinearLayout的位置?

时间:2012-12-05 06:24:58

标签: android android-layout android-intent

我输入时无法看到editText控件,因为软键盘掩盖(隐藏)editText控件代码示例如下:

private LinearLayout.LayoutParams LY_Scroll = new LinearLayout.LayoutParams(
            LayoutParams.FILL_PARENT, 388);
    private LinearLayout.LayoutParams LY_BOTTOM = new LinearLayout.LayoutParams(
            LayoutParams.FILL_PARENT, 45);
    private LinearLayout.LayoutParams LY_EDIT = new LinearLayout.LayoutParams(
            267, LayoutParams.FILL_PARENT);
    private LinearLayout.LayoutParams LY_BTN = new LinearLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
    private LinearLayout.LayoutParams LY_TEXT = new LinearLayout.LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);


@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        LinearLayout layout_all = new LinearLayout(this);
        layout_all.setOrientation(LinearLayout.VERTICAL);
        layout_all.setBackgroundColor(android.graphics.Color.WHITE);

        // top
        setContentView(layout_all);

        sv = new ScrollView(this);
        sv.setLayoutParams(LY_Scroll);

        text_Show = new TextView(this);
        text_Show.setLayoutParams(LY_TEXT);
        sv.addView(text_Show);

        // bottom
        LinearLayout layout_bottom = new LinearLayout(this);
        layout_bottom.setLayoutParams(LY_BOTTOM);
        layout_bottom.setOrientation(LinearLayout.HORIZONTAL);

        editText = new EditText(this);
        editText.setLayoutParams(LY_EDIT);

        sendBtn = new Button(this);
        sendBtn.setLayoutParams(LY_BTN);
        sendBtn.setText("Send");

        layout_bottom.addView(editText);
        layout_bottom.addView(sendBtn);

        layout_all.addView(sv);
        layout_all.addView(layout_bottom);

        ........
    }

当我输入软键盘时,任何人都可以知道如何使editText可见吗?

先谢谢,

2 个答案:

答案 0 :(得分:0)

似乎最好的方法是使用windowSoftInputMode来控制对话框的工作方式。也许您需要adjustPan选项,尽管文档建议不要使用它。请参阅this earlier answer

答案 1 :(得分:0)

在您拥有EditText的活动下的清单中添加此内容。

android:windowSoftInputMode="adjustPan"