TabLayoutのタブを無効化する方法
こんにちは!腹筋ローラーする人です。
昼は会社で2週間ごとにiOS, android開発を交互にして、夜は家でruby触る生活を1ヶ月続けたらメンヘラになりました。弱めです。
個人的に書いてて楽しいのはrubyですが、型がないと不安になるようになりました。
今回はandroid開発でTabLayout
の操作で地味にハマったのでメモ。
tabs.addTab(tabs.newTab().setText("TAB0")); tabs.addTab(tabs.newTab().setText("TAB1")); tabs.addTab(tabs.newTab().setText("TAB2"));
例えばこのようにタブを追加している場合で、
ページロード中などのタブ変更をユーザにさせたくない時にタブのタッチを無効化にしたい場合、
tabs.setEnabled(false);
このようにしてまるっと全てのタブを無効化できると思っていたのですがこれうまくいかないんです。
むっちゃググりながら情報拾い集めてたどり着いた結果がこちら。TabLayout
の無効化の場合は、
for ( int i = 0; i < tabs.getChildCount(); i++ ) { ((LinearLayout)tabs.getChildAt(0)).getChildAt(i).setEnabled(false); }
こんな感じで、一度レイアウトでタブを拾ってから一つずつsetEnable
してあげないとダメみたいですね。
有効化するときはもちろんtrue
で大丈夫です。
FragmentTabHost
とかを使っている場合はまた実装方法が変わってくると思いますが、困ったらお試しください。