kit*_*son 31 user-interface android android-activity
我有一个活动,其中我有3个按钮放在一起.我使用了Button的子类,它将调整按钮文本的大小以防止文本换行.我希望3个按钮共享相同的文本大小.为了做到这一点,我打算检测文本大小最小的按钮,并将其他2个按钮设置为该文本大小.
我遇到的问题是知道Activity何时完成了它的组件布局,以便我可以可靠地知道文本的大小调整已经发生.从Android文档中可以看出生命周期中的最新通知是onResume(),但此时布局似乎尚未完成.有没有办法接收活动布局已完成的通知?
Gre*_*reg 28
我使用Tree Observers做了类似的事情.您可能需要稍微调整它以找到它应该附加的视图,但是一旦设置了视图就会触发.从那里,您可以获得文本的大小,并进行所需的任何更改.
mTestButton.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// make sure it is not called anymore
mTestButton.getViewTreeObserver().removeGlobalOnLayoutListener(this);
float size = mTestButton.getTextSize();
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:
方法#removeGlobalOnLayoutListener已被弃用,但仍然有效.要同时使用新旧方法,请参阅此stackoverflow答案.
| 归档时间: |
|
| 查看次数: |
11190 次 |
| 最近记录: |