2

TextView 呼び出しを mTextView として含むフラグメントがあります。次のように Fragment の onCreateView にコンテンツを追加した後、mTextView の高さを取得したい:

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        final View view = inflater.inflate(
                R.layout.myfragment, container, false);

        mTextView = (TextView) view.findViewById(R.id.myTextView);
               int mHeight=mTextView.getHeight();

 }

しかし、それは常に0の値を返します。

4

3 に答える 3

0

後で取得しようとしますか

setContentView(R.layout.your_layout); 

右?

于 2012-07-02T08:12:34.597 に答える
0

onCreate 直後に高さを取得しようとすると、まだウィンドウがフォーカスされていないため取得できません。このようにしてみてください:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    // your code here
    int mHeight=mTextView.getHeight();
}
于 2012-07-02T08:18:48.823 に答える
0

ビューのディメンションが 0 である理由は、クエリを実行しているときに、ビューがまだレイアウトと測定の手順を実行していないためです。ビューがレイアウト内でどのように「動作」するかを伝えただけですが、各ビューを配置する場所はまだ計算されていません。

ただし、そのサイズを取得するにはいくつかのトリックがあります。受け入れられた回答のアプローチはあまり好きではありませんが、この質問を出発点として使用できます。

android.widget.ImageViewの幅と高さを取得するには?

于 2012-07-02T08:44:15.610 に答える