如何设置身高和Edittext的宽度,以便当我在edittext旁边键入某些内容时,按钮应该变为可见

时间:2012-08-30 06:40:59

标签: android android-layout android-ui

我有EditText& Button中的LinearLayout。我现在Button隐身了我的EditTextfill parent

但是,当我想在EditText中输入内容时,编辑文字的宽度应该包裹&旁边的Button应该可见。任何代码段都非常有用。

5 个答案:

答案 0 :(得分:0)

Button有setVisibility方法。为了明显使用以下内容:

Button button.setVisibility(View.VISIBLE);

答案 1 :(得分:0)

不要将EditText设为fill_parent。您可以尝试使用:

<EditText
    android:layout_width = "0dp"
    android:layout_height = "wrap_content"
    android:layout_weight = "1"
    />

<YourButton/>

我假设您的LinearLayout面向horizontal

答案 2 :(得分:0)

试试这个

<LinearLayout android:orientation="horizontal">
     <EditText android:layout_weight="1" android:layout_height="wrap_content" 
         anroid:layout_width="0dp" />
     <Button android:layout_width="50dp" android:layout_height="wrap_content"
         android:visibility="gone" />
</LinearLayout>

我假设您在EditText中输入内容时已经有了显示按钮的代码

答案 3 :(得分:0)

试试这个:

  • OnFocusChangedListener注册到您的EditText。
  • 覆盖onFocusChange()并执行以下hasFocus== true
    • 将EditText的LayoutParameters更改为Width和Height中的wrap_content。
    • 将按钮设置为可访问。

答案 4 :(得分:0)

试试这个:

布局:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/editText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/btnClickMe"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click Me"
        android:visibility="gone" />
</LinearLayout>

代码:

EditText editText=(EditText)findViewById(R.id.editText);
    final Button btnClickMe=(Button) findViewById(R.id.btnClickMe);

    editText.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            btnClickMe.setVisibility(View.VISIBLE);
        }
    });