这不是动作栏,而是创建我需要帮助的自定义进度条。我想创建一个完全像Catch Notes - https://ssl.gstatic.com/android/market/com.threebanana.notes/ss-480-0-9 https://market.android.com/details?id=com.threebanana.notes
我尝试过多次不同的方式。我看了很多教程,包括Android Dev Guide。我在这一点上非常生气。请问有人会给我一些帮助吗?
现在,我的操作栏正在调用通用进度条布局,并且工作正常。
switch (item.getItemId()) {
case R.id.refresh:
item.setActionView(R.layout.progress);
return true;
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" android:weightSum="1">
<ProgressBar android:id="@+id/progress"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ProgressBar>
</LinearLayout>
答案 0 :(得分:2)
要显示进度条,您需要在ActionBar.displayOptions中启用ActionBar.DISPLAY_SHOW_CUSTOM。
Catch notes正在为其进度条使用自定义动画。我认为默认的Holo(正常大小)是一个合理的选择,但是为了得到类似于他们特定的东西,你需要创建一个animationDrawable。
http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html
然后使用getCustomView()从ActionBar获取自定义视图,找到你的ImageView,然后开始动画制作。
答案 1 :(得分:1)
进度条周围的LinearLayout是不必要的;另外,请注意我在设置项目的操作视图后添加了“expandActionView()”。
switch (item.getItemId()) {
case R.id.refresh:
item.setActionView(R.layout.progress);
item.expandActionView();
return true;
在res / layout / progress.xml中有这个:
<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ProgressBar>
从技术上讲,不需要布局:
switch (item.getItemId()) {
case R.id.refresh:
item.setActionView(new ProgressBar(this, null, android.R.attr.progressBarStyleSmall));
item.expandActionView();
return true;