私はあなたのように貼り付けましたか、?
私はハックのいくつかの種類でこれを達成しています。 最初に私はEditTextViewで(Kotlinの)拡張機能としてコピーして実装するTextViewコードを見ましたが、大量のメソッドがありますので、最終的にそのオプションを破棄します。それは目に見えないのTextViewを使用することがあります私は持っているもの
、(はい私は知っている、完全なハックであることに非常に満足していないが、Googleはこのことについて恥じる必要があります)
これは私のXMLS
<TextView android:id="@+id/invisibleTextView"
android:layout_height="0dp"
android:layout_width="match_parent"
android:focusable="false"
app:autoSizeTextType="uniform"
app:autoSizeMinTextSize="@dimen/text_min"
app:autoSizeMaxTextSize="@dimen/text_max"
app:autoSizeStepGranularity="@dimen/text_step"
android:textAlignment="center"
app:layout_constraintLeft_toLeftOf="@id/main"
app:layout_constraintRight_toRightOf="@id/main"
app:layout_constraintTop_toBottomOf="@id/textCount"
app:layout_constraintBottom_toBottomOf="@id/main"
android:visibility="invisible"
tool:text="This is a Resizable Textview" />
<EditText android:id="@+id/resizableEditText"
android:layout_height="0dp"
android:layout_width="match_parent"
android:textAlignment="center"
app:layout_constraintLeft_toLeftOf="@id/main"
app:layout_constraintRight_toRightOf="@id/main"
app:layout_constraintTop_toBottomOf="@id/textCount"
app:layout_constraintBottom_toBottomOf="@id/main"
android:maxLength="@integer/max_text_length"
tool:text="This is a Resizable EditTextView" />
です
注:これは、両方のビューには、私は私のEditTextView上で使用するには、こののTextViewからautocalculationsを使用する私のコードに続いて同じ幅/高さ
を持っていることが重要です。
private fun setupAutoresize() {
invisibleTextView.setText("a", TextView.BufferType.EDITABLE) //calculate the right size for one character
resizableEditText.textSize = autosizeText(invisibleTextView.textSize)
resizableEditText.setHint(R.string.text_hint)
resizableEditText.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(editable: Editable?) {
resizableEditText.textSize = autosizeText(invisibleTextView.textSize)
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
textCount.text = currentCharacters.toString()
val text = if (s?.isEmpty() ?: true) getString(R.string.text_hint) else s.toString()
invisibleTextView.setText(text, TextView.BufferType.EDITABLE)
}
})
}
private fun autosizeText(size: Float): Float {
return size/(resources.displayMetrics.density + MARGIN_FACTOR /*0.2f*/)
}
ヒントのサイズを変更するには、このAndroid EditText Hint Sizeを使用してください。
私はそれは難しい問題を回避するだけど、少なくとも、我々はpropetaryまたは放棄さgithubのlibには失敗している間、これは、将来のバージョンの場合でも、サイズ変更可能な変更を作業を続けると確信しています。
私はいくつかの日を願って、Googleは
・ホープたちを聞くとチャイルズにこののwonderfull機能を実装し、我々はすべてこのようなものを避けることができ、これは
https://github.com/ViksaaSkool/AutoFitEditTextに役立ちますか? –