小编kro*_*kin的帖子

在Android应用程序中,Toolbar.setTitle方法无效 - 应用程序名称显示为标题

我正在尝试使用android-support-v7:21库创建简单的应用程序.

代码片段:
MainActivity.java

public class MainActivity extends ActionBarActivity {

    Toolbar mActionBarToolbar;

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

        mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);            
        mActionBarToolbar.setTitle("My title");
        setSupportActionBar(mActionBarToolbar);
}
Run Code Online (Sandbox Code Playgroud)

activity_main.xml中

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar            
        android:id="@+id/toolbar_actionbar"
        android:background="@null"
        android:layout_width="match_parent"
        android:layout_height="?actionBarSize"
        android:fitsSystemWindows="true" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

但是,不显示工具栏上的"我的标题",而是显示应用程序名称%.
似乎setTitle方法没有效果.
我想展示"我的头衔".

UPD: 之前,styles.xml是:

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="windowActionBar">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

所以,我认为没有使用动作栏.我添加NoActionBar到样式父级:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="windowActionBar">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但问题没有解决.

android toolbar android-support-library

279
推荐指数
13
解决办法
20万
查看次数

unmarshalling android.support.v7.widget.Toolbar $ SavedState时的ClassNotFoundException

我在Android崩溃报告中看到以下错误:

android.os.BadParcelableException: ClassNotFoundException when unmarshalling: android.support.v7.widget.Toolbar$SavedState
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
   at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3974)
   at android.app.ActivityThread.access$900(ActivityThread.java:139)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1299)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:149)
   at android.app.ActivityThread.main(ActivityThread.java:5257)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
   at dalvik.system.NativeStart.main(NativeStart.java)
Caused by: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: android.support.v7.widget.Toolbar$SavedState
   at android.os.Parcel.readParcelableCreator(Parcel.java:2154)
   at android.os.Parcel.readParcelable(Parcel.java:2104)
   at android.os.Parcel.readValue(Parcel.java:2020)
   at android.os.Parcel.readSparseArrayInternal(Parcel.java:2382)
   at android.os.Parcel.readSparseArray(Parcel.java:1742)
   at android.os.Parcel.readValue(Parcel.java:2077)
   at android.os.Parcel.readArrayMapInternal(Parcel.java:2321)
   at android.os.Bundle.unparcel(Bundle.java:249)
   at android.os.Bundle.getSparseParcelableArray(Bundle.java:1273)
   at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1744)
   at android.app.Activity.onRestoreInstanceState(Activity.java:1017)
   at android.app.Activity.performRestoreInstanceState(Activity.java:989)
   at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1138)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2284)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
   at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3974)
   at android.app.ActivityThread.access$900(ActivityThread.java:139)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1299)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:149)
   at …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-toolbar android-savedstate

19
推荐指数
1
解决办法
6141
查看次数

android - 在android工作室中的proguard错误

我想为我的应用程序使用proguard,我启用它但是当我想生成apk文件时,它给了我这个错误:

    Information:Gradle tasks [:app:assembleRelease]
:app:preBuild UP-TO-DATE
:app:preReleaseBuild UP-TO-DATE
:app:checkReleaseManifest
:app:preDebugBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72300Library UP-TO-DATE
:app:prepareComAndroidSupportCardviewV72300Library UP-TO-DATE
:app:prepareComAndroidSupportDesign2300Library UP-TO-DATE
:app:prepareComAndroidSupportRecyclerviewV72300Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42300Library UP-TO-DATE
:app:prepareJpWasabeefRecyclerviewAnimators122Library UP-TO-DATE
:app:prepareReleaseDependencies
:app:compileReleaseAidl UP-TO-DATE
:app:compileReleaseRenderscript UP-TO-DATE
:app:generateReleaseBuildConfig UP-TO-DATE
:app:generateReleaseAssets UP-TO-DATE
:app:mergeReleaseAssets UP-TO-DATE
:app:generateReleaseResValues UP-TO-DATE
:app:generateReleaseResources UP-TO-DATE
:app:mergeReleaseResources UP-TO-DATE
:app:processReleaseManifest UP-TO-DATE
:app:processReleaseResources UP-TO-DATE
:app:generateReleaseSources UP-TO-DATE
:app:processReleaseJavaRes UP-TO-DATE
:app:compileReleaseJava UP-TO-DATE
:app:compileReleaseNdk UP-TO-DATE
:app:compileReleaseSources UP-TO-DATE
:app:lintVitalRelease
:app:proguardRelease
Note: there were 7 duplicate class definitions.
      (http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass)
Warning:library class org.apache.http.conn.scheme.LayeredSocketFactory extends or implements program class org.apache.http.conn.scheme.SocketFactory
Warning:org.acra.ErrorReporter: can't find referenced method 'void setLatestEventInfo(android.content.Context,java.lang.CharSequence,java.lang.CharSequence,android.app.PendingIntent)' …
Run Code Online (Sandbox Code Playgroud)

android proguard

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

如何从Android Studio中的特定文件中删除所有评论?

我的项目中有一些大文件,其中有很多行被评论过.

通常当我在代码中更改某些内容时,我会首先评论不必要的行,然后在测试后删除它们.
但有时最后在一个大文件中有太多注释,并且很难删除它们.
因此,可能Android Studio中有一些功能可以从评论中"清理"文件(当然不包括javadoc注释),例如"组织导入"以删除文件中未使用的导入.
或者,也许,某种突出显示注释行,所以我可以很容易地看到要删除的内容.

你能帮帮我吗?
任何想法都表示赞赏

android comments javadoc intellij-idea android-studio

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

Kotlin Flow onBackpressureDrop RxJava2 模拟

在 RxJava 2 Flowable 中有不同的背压策略,其中最有趣的是:

  • 最新的
  • 缓冲
  • 降低

在整个 Rx 链中都受到尊重。

在 Kotlin 中有 Flow,它声明它具有开箱即用的背压支持。我能够通过使用以下内容使 Flow 具有 BUFFER 和 LATEST 策略:

对于缓冲器:

observeFlow()
    .buffer(10)
    .collect { ... }
Run Code Online (Sandbox Code Playgroud)

最新:

observeFlow()
    .conflate()
    .collect { ... }
Run Code Online (Sandbox Code Playgroud)

这只是同一个缓冲区运算符的快捷方式。

但是我找不到任何可以与 DROP 相同的东西。简而言之,当前一个值尚未处理时,DROP 将删除流中的任何值。对于 Flow,我什至不确定这是否可能。

考虑案例:

observeFlow()
    .backpressureDrop() // non-existent operator, just for illustrative purposes
    .map { ... }
    .flatMapMerge { ... }
    .collect { ... }
Run Code Online (Sandbox Code Playgroud)

所以 backpressureDrop 应该尊重在流下面完成的任何工作,而该操作员对下面发生的事情一无所知(没有来自底部的显式回调——就像 RxJava 订阅者中的“请求”方法)。因此似乎不太可能。在收集前一个项目之前,该操作员不应通过任何事件。

是否有任何现成的运算符,我想念它,或者是否有一种简单的方法可以使用现有的 API 实现这样的东西?

kotlin backpressure rx-java2 kotlin-coroutines kotlin-flow

5
推荐指数
1
解决办法
1037
查看次数

使用 android-support-v7:21 库的工具栏上未显示 ActionBarDrawerToggle

尝试从 android-support-v7:21 库实现新的抽屉切换,但未显示。代码片段:

public class MainActivity extends ActionBarActivity {

    private Toolbar mToolbar;
    private DrawerLayout mDrawerLayout;
    private ActionBarDrawerToggle mDrawerToggle;

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

        initToolbar();
    }

    private void initToolbar() {
        mToolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(mToolbar);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
        mDrawerToggle = new ActionBarDrawerToggle(
                this,
                mDrawerLayout,
                mToolbar,
                R.string.drawer_open,
                R.string.drawer_close
        );
        mDrawerLayout.setDrawerListener(mDrawerToggle);
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-support-library navigation-drawer android-toolbar

1
推荐指数
1
解决办法
3025
查看次数