簡體   English   中英

在Android中更改聚焦的EditText的TextSize

[英]Change TextSize of focussed EditText in android

你們中的任何人都可以向我展示更改EditText的TextSize屬性的最佳方法嗎,僅當用戶選擇它(正在編寫)時?

這是我到目前為止完成的工作:

我有兩個線性布局的EditText。

xml:

<EditText
   android:textSize="20dp"
   android:onClick="makeTextViewFocusedBigger"/>
<EditText
   android:textSize="20dp"
   android:onClick="makeTextViewFocusedBigger"/>

活動:

public void makeTextViewFocusedBigger(View view) {
   ((EditText) view).setTextSize(TypedValue.COMPLEX_UNIT_DIP, 25);
}

當用戶選擇它時,它確實會變大,但是當用戶停止使用它時,顯然它不會返回到原始大小。

您將如何實現此功能?

使用View.OnFocusChangedListener

myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
       // Change size based on hasFocus boolean
    }
});

使用setOnFocusChangeListener

像這樣 :

Your_Edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if(hasFocus)
                {
                    Your_Edittext.setTextSize(25); //increased size
                }
                else
                {
                    Your_Edittext.setTextSize(15); //normal size
                }
            }
        });

請執行以下操作:

XML:

  <EditText
       android:textSize="20dp"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:id="@+id/edit_text_first"/>
    <EditText
       android:textSize="20dp"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:id="@+id/edit_text_second"/>

活動OnCreate

 EditText editFirst=findViewById(R.id.edit_first)

 EditText editSecond=findViewById(R.id.edit_second)

editFirst.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
       // Change size of text inside 1st EditText
    }
});

editSecond.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
       // Change size of text inside 2nd EditText
    }
});

為了更通用地實現它:

 public class MainActivity extends AppCompatActivity implements View.OnFocusChangeListener{ 


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


            setContentView(R.layout.activity_main);
            editFirst.setOnFocusChangeListener(this);

            editSecond.setOnFocusChangeListener(this);

    }



    @Override
    public void onFocusChange(View v, boolean hasFocus) 
        {
            // Change text size of every EditText or for selective EditText. As You want
            }
}

您需要實現View.OnFocusChangeListener()。 視圖的焦點狀態已更改時,將調用此方法。

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if(hasFocus)
        {
           // Change size when editText has focus
           editText.setTextSize(30);
        }else
        {
             // Change size when editText doesn't has focus
             editText.setTextSize(15);
        }
    }
});

您需要將addFocusChangedListener到您的EditTexts 在其中,您可以查看他們是否專注。

您必須實現View.OnFocusChangeListener()方法,根據需要在onFocusChange()中設置onFocusChange()大小

myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
      // set the text size here
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM