是否可以在应用程序标题的右上角添加一个按钮?
例如,在“Feed:我的订阅”标题中添加“刷新”按钮?
是否可以在应用程序标题的右上角添加一个按钮?
例如,在“Feed:我的订阅”标题中添加“刷新”按钮?
我认为最简单的方法是去掉标准的标题栏 (android:theme="@android:style/Theme.NoTitleBar"
在清单文件中的 <activity>
元素中),并在活动顶部放置自己的“标题栏”。
请注意,“标题栏中的按钮”样式更像 iPhone。Android 通常会将其放在选项菜单中,这样 UI 更少混乱(代价是需要点击两次来进行刷新操作)。
为什么不尝试这个呢?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final boolean customTitle= requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
if ( customTitle ) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, Set your layout for title here and mention your button in this layout);
}
final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
if ( myTitleText != null ) {
myTitleText.setText("NEW TITLE");
myTitleText.setBackgroundColor(Color.BLUE);
}
}
是的,这解决了我遇到的一个问题...以下是修剪版本...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, Set your layout for title here and mention your button in this layout);
final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
if ( myTitleText != null ) {
/* your code here */
}
}
我认为更好的方法是使用Handler刷新视图,如果它处于活动状态。如果在恢复活动时拉取内容,则每次离开和返回视图时都会刷新。如果您希望用户坐在视图的顶层并需要更新信息,则可以使用延迟处理程序来处理这个问题,该处理程序将调用您的恢复方法并定期刷新视图,从而消除了按钮的需求。
这里是处理程序类文档的链接。我建议首先查看Handler的基本用法。然后测试sendMessageDelayed方法,以便在每次调用结束时重新启动Handler。此外,请确保仅在您的活动为顶级活动时才创建新的处理程序,并且如果不是,则不要打扰刷新UI。向暂停和恢复事件添加一个简单的isActive标志是检查这一点的不错方法。