アプリケーションでtextInputLayoutwithOut AppCompatテーマを使用していると、レイアウトを膨らませることができず、アプリがクラッシュします。TextInputLayoutのみにAppcompatテーマを設定しようとすると、APIが21を超えるデバイスでは正常に機能しましたが、ロリポップ以前のデバイスではクラッシュします。アプリケーション全体でAppCompatテーマを使用せずにPreLollipopデバイスでTextInputLayoutを使用する方法はありますか?
TextInputLayoutには、デザインテーマから派生したテーマが必要です。まず、そのようなテーマのコンテキストを取得する必要があります。
val themedContext = ContextThemeWrapper(context, R.style.Theme_Design_Light)
ここにcontext
活動があります。今、あなたは2つのオプションがあります:
val inflater = LayoutInflater.from(themedContext)
inflater.inflate(R.layout.my_input_layout, inputParent, true)
// Find the input layout and edit text by ID and work with them.
inputParent
は、インフレーション後に入力レイアウトがアタッチされるビューグループです。
val inputLayout = TextInputLayout(themedContext)
val editText = EditText(inputLayout.context)
inputLayout.addView(editText)
inputParent.addView(inputLayout)
オプション1をお勧めします。これは、ほとんどの人がビュー階層を定義するときに慣れているものだからです。予期しない結果を回避するのに役立つ場合があります。
または、AppCompatテーマとAppCompatActivityを使用するだけです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加