[解決済み] NavigationViewのヘッダーレイアウトの取得/検索
2022-04-21 05:29:17
質問
私のNavigationViewには、アクティブなボタンを持つid 'viewId'のヘッダーレイアウトがあります。これらのボタンをセットアップするために、私はアクティビティで次のことを行います。
onPostCreate
:
final View panel = findViewById(R.id.viewId);
panel.setOnClickListener(new View.OnClickListener() {
... setup goes here ...
});
新しいバージョンのアンドロイドサポートライブラリで、( 23.1.0 が見つからない場合、null を返します。以前のバージョンではうまくいっていたのですが。バグなのでしょうか、それとも私の使い方が悪いのでしょうか?もしそうなら、どのようにヘッダーレイアウトにアクセスし、動作を追加するのでしょうか?
解決方法は?
バージョン23.1.0スイッチ
NavigationView
を使用するようになりました。
RecyclerView
(以前の
ListView
) があり、ヘッダーはそれらの要素の一つとして追加されます。このため、即座に
findViewById()
- にアタッチされる前にレイアウトパスが必要です。
NavigationView
.
について
バージョン23.1.1
を使用することで、ヘッダービューへの参照を取得できるようになりました。
getHeaderView()
:
View headerLayout = navigationView.getHeaderView(0); // 0-index header
これは、XMLやコードで追加されたヘッダにも対応できる利点があります。
まだ23.1.0を使用している場合は、以下のように
関連するバグ
を使用すると、コード内でヘッダーを膨らませることができます。
findViewById()
を追加しました。
View headerLayout =
navigationView.inflateHeaderView(R.layout.navigation_header);
panel = headerLayout.findViewById(R.id.viewId);
// panel won't be null
23.1.1に移行するまでは。
関連
-
java.lang.NullPointerException: NULLオブジェクト参照で仮想メソッド......を呼び出そうとしました。
-
aapt2エラー:ログを確認する(具体的な原因の探り方)
-
Gradle のエラーです。gradle-core.jar (com.android.tools.build:gradle-core:x.x.x) を見つけられませんでした。
-
エラーが発生しました。ArrayAdapter は、リソース ID が TextView である必要があります。
-
アプリの実行エラー。ターゲットデバイスが見つからない問題
-
Android Studio常见错误之:Rendering Problems/The following classes could not be instantiated
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] Androidのレイアウトファイルの「tools:context」とは何ですか?
-
[解決済み] 新しいNavigationViewで簡単な仕切りを作るには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Android端末にADBが接続できない!を解決。理由: デバイスが認証されていない!
-
AndroidStudio reports Could not resolve all artifacts for configuration ':app:classpath'.
-
cygwinのダウンロード、インストールチュートリアル、およびCDTの「makeプログラムがパスに見つからない」バグの解消
-
AndroidがMainActivityが包含クラスでないというエラーを報告する
-
telnet'が内部コマンドまたは外部コマンドとして認識されない 解決方法
-
エラー:未宣言の識別子(AS)の使用
-
ConstraintLayoutのいくつかのプロパティの概要(RelativeLayoutの強化版、LinearLayoutの比例プロパティを含む、階層ツールの削減)。
-
アンドロイドリストビュー
-
Android Studio http://schemas.android.com/apk/res/android 「URIが登録されていません」の解決方法について
-
Android TextViewは、テキスト内容が表示省略記号を超えているかどうかを判断する