我有一个FragmentPagerAdapter,它按如下方式回调我的MainActivity:
class MyFragmentPagerAdapter extends FragmentPagerAdapter
{
public void someMethod()
{
mMainActivity.setTextViewText("This is a test string");
}
}
在MainActivity中:
class MainActivity extends Activity
{
public void setTextViewText(String text)
{
mTextView.setText(text);
}
}
结果是单行文本未包装在TextView中(它被截断)。 TextView的宽度为0dp,并使用其父级的权重作为宽度。令人头疼的是,如果我从MainActivity本身调用setTextViewText(),文本包装就好了。只有当我将其称为回调文本不再包装时才会这样。为什么会这样?附:正如通过记录Thread.currentThread.getId()所证明的那样,这两种方法都在UI线程上完成。