我正在获得ABS不确定的进度,但它似乎超出了操作栏。这与ABS Progress演示行为一致,但它不是我想要的。 我想要Gmail行为。
以下是我的截图和ABS演示进度截图以及我的代码:
package com.demo.uiproofer;
import java.util.concurrent.atomic.AtomicBoolean;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends SherlockActivity{
private static String TAG = "MainActivity";
private AtomicBoolean isRefreshing;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature((long)com.actionbarsherlock.view.Window.FEATURE_PROGRESS);
setContentView(R.layout.activity_main);
getSherlock();
getSupportActionBar();
//setSupportProgressBarIndeterminateVisibility(false);
if (isRefreshing==null) {
isRefreshing = new AtomicBoolean(false);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getSupportMenuInflater().inflate(R.menu.main, menu);
setSupportProgressBarVisibility(true);
setSupportProgressBarIndeterminateVisibility(false);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
setSupportProgressBarIndeterminate(true);
if (isRefreshing.get()==false) {
Log.i(TAG, "On Start Refresh Click!");
getSherlock();
getSupportActionBar();
setSupportProgressBarVisibility(true);
//setSupportProgressBarIndeterminateVisibility(true);
}
else {
Log.i(TAG, "On Stop Refresh Click!");
getSherlock();
getSupportActionBar();
setSupportProgressBarVisibility(false);
//setSupportProgressBarIndeterminateVisibility(false);
}
isRefreshing.set(!isRefreshing.get());
return true;
}
return super.onOptionsItemSelected(item);
}
}
我想要的是不确定进度条的Gmail行为,当然不需要刷新:
答案 0 :(得分:2)
ActionBar的默认行为是在其上显示进度。解决这个问题的“最纯粹”的方法是完全改变ActionBar的主题并将其反转,这是非常棘手的,我甚至都没有尝试过。
有一个非常快速的解决方法,它是创建一个支持布局顶部进度条的BaseActivity。
您可以找到包含布局和BaseActivity here的要点。
P.S。由于我最初使用新的Android兼容性库而不是ActionbarSherlock创建了这个,因此可能存在小错别字。
享受!