Android 创建视图时无法获取TextView的高度

Android 创建视图时无法获取TextView的高度,android,fragment,Android,Fragment,我有一个片段,其中包含一个名为mTextView的TextView调用。我想在片段的onCreateView中将内容附加到mTextView之后,获得mTextView的高度,如下所示: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = inf

我有一个片段,其中包含一个名为mTextView的TextView调用。我想在片段的onCreateView中将内容附加到mTextView之后,获得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值。

之后是否尝试获取它

setContentView(R.layout.your_layout); 

对吗?

你会试着在之后拿到它吗

setContentView(R.layout.your_layout); 

对吗?

如果您在创建后立即尝试获取高度,您将无法获取,因为窗口仍然没有聚焦。试着这样做:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    // your code here
    int mHeight=mTextView.getHeight();
}

如果您尝试在onCreate之后获取高度,您将无法获取,因为窗口仍然没有聚焦。试着这样做:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    // your code here
    int mHeight=mTextView.getHeight();
}

视图的尺寸标注为0的原因是,在查询它们时,视图仍然没有执行布局和测量步骤。您只告诉视图它在布局中的行为,但它仍然没有计算每个视图的放置位置

不过,有一些技巧可以达到这个尺寸。你可以用这个问题作为出发点,尽管我不太喜欢被接受的答案的方法


视图的尺寸标注为0的原因是,在查询它们时,视图仍然没有执行布局和测量步骤。您只告诉视图它在布局中的行为,但它仍然没有计算每个视图的放置位置

不过,有一些技巧可以达到这个尺寸。你可以用这个问题作为出发点,尽管我不太喜欢被接受的答案的方法


我在片段类中没有看到onWindowFocusChanged方法:哦,那么您需要使用消息处理程序来获得正确的高度。一旦处理程序被触发,在片段类中设置一个消息处理程序,延迟1秒。在处理程序内部尝试获取高度。如果你仍然无法获得,请让我知道..我想是的,但我认为这不是解决这个问题的好办法:是的,但要获得高度,至少视图应该集中在屏幕上,这需要一些时间,你不能调用set view的下一行来获取高度。我在我的fragment类中没有看到onWindowFocusChanged方法:哦,那么你需要使用消息处理程序来获取正确的高度。一旦处理程序被触发,在片段类中设置一个消息处理程序,延迟1秒。在处理程序内部尝试获取高度。如果您仍然无法获取,请告诉我..我想是的,但我认为这不是解决此问题的好办法:是的,但要获取高度,至少视图应集中在屏幕上,这需要一些时间,您不能调用下一行设置视图来获取高度。请使用下面的链接进行尝试,使用下面的链接进行尝试,谢谢,我来看看那个话题。谢谢,我来看看那个话题。