複数の画面サイズをサポートし、新しい ICS タブを正しく使用するために、Android アプリをフラグメントに変換しようとしています。以前は、このonWindowFocusChanged()
メソッドを使用し、その中で次のコードを実行しました。基本的に、これにより、レイアウトが作成された後にレイアウトの動的な書式設定が行われました。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
LinearLayout theLayout = (LinearLayout)inflater.inflate(R.layout.tab_frag2_layout, container, false);
getWidthEditButton = (ImageButton) theLayout.findViewById(R.id.buttonEditPoints);
buttonAddPointsManual = (ImageView) theLayout.findViewById(R.id.buttonAddPointsManual);
linearPointsUsed = (LinearLayout) theLayout.findViewById(R.id.linearLayoutPointsUsed);
int paddingLeftForTracker = linearPointsUsed.getPaddingLeft();
int paddingRightForTracker = getWidthEditButton.getWidth();
linearPointsUsed.setPadding(paddingLeftForTracker, 0, paddingRightForTracker, 0);
}
Fragments に移動したので、何らかの理由で paddingRightForTracker が 0 を返します。以前に幅を早く取得しようとしていた問題に遭遇したため、以前に onWindowFocusChanged に移動しましたが、Fragments では使用できません。奇妙なことに、paddingLeftForTracker は実際にはゼロ以外の値を返します。
paddingRightForTracker を手動で設定すると、変更が行われるため、コードが実行されていることがわかります。getWidth が 0 を返す理由がわかりません。
どんな助けでも大歓迎です。