标签: android-actionbar

ActionBar下的ProgressBar

问题摘要:如何在Chrome应用程序中进行ProgressBar集成ActionBar

详细信息:请查看Chrome的此屏幕截图:

Chrome for Android截图

我想像这样创建一个Action Bar.在Action Bar的下方,有一个ProgressBar根据页面加载填充.我从很多应用程序中看过这个例子,比如Feedly,但是我无法创建自己的实现.我尝试使用Android自己的API来创建它:

@Override
protected void onCreate(Bundle savedInstanceState) {
    //Request Permission to display the Progress Bar...
    this.requestWindowFeature(Window.FEATURE_PROGRESS);
            this.setWindowContentView(R.layout.activity_main)
    super.onCreate(savedInstanceState);

    this.setProgressBarIndeterminate(true);
}
Run Code Online (Sandbox Code Playgroud)

但是这段代码只会导致ProgressBar显示 Action Bar上,如下所示:

我的应用截图

那么,如何让我的ProgressBar出现在Action Bar下,就像Chrome应用程序一样?

android android-progressbar android-actionbar

78
推荐指数
3
解决办法
4万
查看次数

软键盘上的自动折叠ActionBar SearchView关闭

我目前正在使用ActionBar菜单项在操作栏中显示SearchView.当搜索菜单项被展开时,显示软键盘,这就是我想要的.现在,当用户按下后退按钮关闭软键盘时,我还想在操作栏中折叠SearchView.

我尝试在MenuItem和ActionView上实现以下侦听器OnKeyListener和OnFocusChangeListener.我也尝试在Activity中使用OnBackPressed().以上都没有检测到后退按钮用于关闭软键盘的时间.

有任何想法吗?

我已经实现了OnActionExpandListener来了解SearchView何时可见.

android android-softkeyboard android-actionbar

76
推荐指数
3
解决办法
4万
查看次数

如何在ActionBar中显示动作的图标和标题?

我需要同时显示icontitle行动中ActionBar.

我试过" withText"选项,但它没有效果.

在此输入图像描述

android android-ui android-layout actionbarsherlock android-actionbar

76
推荐指数
5
解决办法
11万
查看次数

什么是默认ActionBar标题字体大小?

似乎是17dip.如果有人知道确切的尺寸,只想确认一下.

android android-actionbar

75
推荐指数
2
解决办法
6万
查看次数

工具栏中的材料"关闭"按钮而不是"后退"

我在谷歌的收件箱应用程序中看到,编写一个新的电子邮件,在工具栏中而不是后退按钮(箭头),它有一个"关闭"按钮(见图片).

我怎样才能做到这一点?

收件箱撰写关闭按钮

android android-actionbar material-design

75
推荐指数
4
解决办法
4万
查看次数

使用片段后端堆栈处理ActionBar标题?

我有一个Activity加载到的地方ListFragment,在点击时,它向下钻取一个级别,显示一个新类型ListFragment,替换原来的(使用showFragment下面的方法).这是放在后面的堆栈上.

开始时,活动会在操作栏中显示默认标题(即根据应用程序自动设置android:label).

显示层次结构中下一级别的列表时,单击的项目名称应成为操作栏的标题.

但是,按下时Back,我希望恢复原始默认标题.这不是什么FragmentTransaction知道的,所以标题不会恢复.

我模糊地读过FragmentBreadCrumbs,但这似乎需要使用自定义视图.我正在使用ActionBarSherlock,并且更愿意没有我自己的自定义标题视图.

这样做的最佳方式是什么?是否有可能没有大量的样板代码并且必须跟踪沿途显示的标题?


protected void showFragment(Fragment f) {
  FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
  ft.replace(R.id.fragment_container, f);
  ft.addToBackStack(null);
  ft.commit();
}
Run Code Online (Sandbox Code Playgroud)

android android-fragments actionbarsherlock android-actionbar

73
推荐指数
6
解决办法
5万
查看次数

如何修复getActionBar方法可能会产生java.lang.NullPointerException

我正在使用工具栏作为活动中的操作栏.我正在尝试将该方法添加getActionBar().setDisplayHomeAsUpEnabled(true);到Activity.java文件中以用于较旧设备的向上导航.

该方法在Android Studio中生成以下错误消息:

方法调用可能会产生java.lang.NullPointerException

工具栏上的向上导航在较新的设备上运行良好...现在我正在试图弄清楚如何确保它适用于旧设备.请指教.

来自build.gradle:

dependencies {
   compile "com.android.support:appcompat-v7:22.1.0"
}
Run Code Online (Sandbox Code Playgroud)

来自AndroidManifest.xml:

android:theme="@style/Theme.AppCompat.NoActionBar.FullScreen" 
Run Code Online (Sandbox Code Playgroud)

来自styles.xml

<style name="Theme.AppCompat.NoActionBar.FullScreen" parent="AppTheme">
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
Run Code Online (Sandbox Code Playgroud)

来自Activity.java

public class CardViewActivity extends AppCompatActivity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.cardviewinput);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

    if (toolbar != null) {
        // Up navigation to the parent activity for 4.0 and earlier
        getActionBar().setDisplayHomeAsUpEnabled(true);
        toolbar.setNavigationIcon(R.drawable.ic_action_previous_item);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });
    }

}
Run Code Online (Sandbox Code Playgroud)

android toolbar android-actionbar

73
推荐指数
3
解决办法
6万
查看次数

使用navigateUpFromSameTask()从活动返回

我有两个活动,A和B.当活性A被第一次启动,它访问Intent传递给它(因为Bundlenull,因为它应该通过在第一时间),并相应地显示信息:

CustInfo m_custInfo;
...
protected void onCreate(Bundle savedInstanceState)
{
    ...
    Bundle bundle = (savedInstanceState == null) ? getIntent().getExtras() : savedInstanceState;
    m_custInfo = (CustInfo) m_bundle.getSerializable("CustInfo");
    if (m_custInfo != null
        ...
}
Run Code Online (Sandbox Code Playgroud)

这在第一次通过时工作正常.该EditText控制和ListView正确地填写.

现在,当单击列表中的项目时,将启动活动B以显示详细信息:

m_custInfo = m_arrCustomers.get(pos);

Intent intent = new Intent(A.this, B.class);
intent.putExtra("CustInfo", m_custInfo); // CustInfo is serializable
// printing this intent, it shows to have extras and no flags

startActivityForResult(intent, 1);
Run Code Online (Sandbox Code Playgroud)

在acivity B启动之前,框架调用A被覆盖onSaveInstanceState():

protected void onSaveInstanceState(Bundle outState)
{ …
Run Code Online (Sandbox Code Playgroud)

android android-activity android-actionbar up-button

69
推荐指数
2
解决办法
2万
查看次数

ActionBar向上导航重新创建父活动而不是onResume

我正在使用推荐的Up Navigation方法,我的代码如下所示:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            Intent h = new Intent(ShowDetailsActivity.this, MainActivity.class);
            h.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(h);
            return true;
        default: return super.onOptionsItemSelected(item);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是用例:

  1. 我启动了我的应用程序"MainActivity"
  2. 我点击一个按钮转到"ShowDetailsActivity"
  3. 我点击UP ActionBar导航

问题是在我点击UP之后,MainActivity再次点击其onCreate()方法并失去所有状态而不是从典型的onResume()开始,就像我刚刚从ShowDetailsActivity调用"finish()"一样.为什么?它是如何工作的,这是Android重新创建使用"向上"导航方法导航到的所有活动的预期行为?如果我点击后退按钮,我会得到预期的onResume生命周期.

如果Android"正确"的不存在,这是我的解决方案:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            Intent upIntent = new Intent(this, MainActivity.class);
            if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
                NavUtils.navigateUpTo(this, upIntent);
                finish();
            } else {
                finish();
            }
            return true;
        default: return super.onOptionsItemSelected(item);
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-actionbar

69
推荐指数
3
解决办法
2万
查看次数

扩展LifecycleActivity,Activity,ActionbarActivity和AppCompactActivity之间的区别?

在Android中,扩展Lifecycler Activity,Activity,ActionBarActivity和AppCompactActivity之间的主要区别是什么?这些类在使用方面有何不同?

android android-fragments android-activity android-actionbar

69
推荐指数
2
解决办法
6万
查看次数