小编Fer*_*rgo的帖子

SearchView占用新ActionBarCompat中的所有空间

我从ActionBarSherlock切换到ActionBarCompat(支持库v7).经过一些调整后,现在几乎所有东西都运转良好.

但是我在ActionBar中遇到了SearchView问题.当它被扩展时(实际上,它总是在我的Activity中扩展),它占用了所有空间并且不尊重设置为始终显示的其他Action Items的空间(showAsAction ="always").

要模拟问题,请使用以下命令:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/menu_buscar"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:icon="@drawable/abc_ic_search"
        app:showAsAction="always"
        android:title="@string/buscar"/>

    <item android:id="@+id/tentar_novamente"
          android:title="@string/tentar_novamente"
          android:icon="@drawable/acao_tentar_novamente"
          app:showAsAction="always" />

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

在活动中:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.busca_action_menu, menu);

    searchMenuItem = menu.findItem(R.id.menu_buscar);
    searchView = (SearchView) MenuItemCompat.getActionView(searchMenuItem);

    searchView.setIconifiedByDefault(false);
    searchView.setQueryHint(stringBusqueArtistasMusicasEAlbuns);

    return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

这是android 4.3中的结果:

在此输入图像描述

这是android 2.3的结果(动作项甚至没有出现):

在此输入图像描述

我使用时会出现同样的问题:

setSupportProgressBarIndeterminateVisibility(true);
Run Code Online (Sandbox Code Playgroud)

进度指示器在Android 4.3中显得非常奇怪,并且不会出现在Android 2.3中.

ActionBarSherlock使用相同的代码按预期工作.当有一些操作项时,SearchView用于减小其宽度以为操作项提供空间.

更新:

我在Android的Bug跟踪器中发布了一个问题:https://code.google.com/p/android/issues/detail? id = 58251&thanks = 58251&ts = 1375191632

如果您遇到同样的问题,请关注此问题.

更新:

我试图将操作项放在SearchView之前,这样他们的项就会出现.

在此输入图像描述

但是,setSupportProgressBarIndeterminateVisibility(true)仍未显示进度条.

android actionbarsherlock android-actionbar android-actionbar-compat

17
推荐指数
2
解决办法
6714
查看次数

Activity的幻灯片动画,overridePendingTransition具有奇怪的效果

我正在创建一个动画,以便在用户进入特定活动时显示.基本上,此活动向上滑动以显示并向下滑动以关闭.我正在使用overridePendingTransition来实现这个动画.

但幻灯片有一个丑陋的效果.它可以在屏幕截图中看到: 屏幕截图

查看正在关闭的活动上显示的灰色矩形.它为什么显示?

我认为这将是Android的android.R.id.content视图,所以我试图改变它的背景,但它没有用.

我正在使用ActionBarSherlock,代码如下所示:

slide_in_from_bottom.xml

<translate xmlns:android="http://schemas.android.com/apk/res/android"
           android:fromYDelta="100%p"
           android:toYDelta="0%p"
           android:duration="@android:integer/config_mediumAnimTime"/>
Run Code Online (Sandbox Code Playgroud)

slide_out_to_bottom.xml

<translate xmlns:android="http://schemas.android.com/apk/res/android"
           android:fromYDelta="0%p"
           android:toYDelta="100%p"
           android:duration="@android:integer/config_mediumAnimTime"/>
Run Code Online (Sandbox Code Playgroud)

nothing.xml

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="0" android:fromAlpha="1" android:toAlpha="1"/>
Run Code Online (Sandbox Code Playgroud)

开始活动:

Intent intent = new Intent();
intent.setClass(getActivity(), PlayerActivity.class);
startActivity(intent);

getActivity().overridePendingTransition(R.anim.slide_in_from_bottom, R.anim.nothing);
Run Code Online (Sandbox Code Playgroud)

关闭活动:

@Override
public void onBackPressed() {
    finish();
    overridePendingTransition(R.anim.nothing, R.anim.slide_out_to_bottom);
}
Run Code Online (Sandbox Code Playgroud)

android android-intent android-animation android-activity

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

在没有UI的情况下添加其他Fragment后,获取"Fragment没有创建视图"

我有一个非常奇怪的问题.我有一个常见的片段,几乎在我的应用程序的每个活动中都添加了.此片段显示了一个小版本的播放器栏.所以它会收听一些广播以更新当前音乐的名称,并有一些控制,如播放/暂停.

就像我说的,我几乎在我的应用程序的每个活动中都添加了这个片段,我从来没有遇到任何问题.但现在,我需要创建一个没有UI且保留的新片段(setRetainInstance(true)).添加这个新片段后,一切似乎都没问题.直到我旋转设备并且活动崩溃.

所以,查看日志,我看到以下异常:

07-05 14:10:23.818: ERROR/AndroidRuntime(25922): FATAL EXCEPTION: main
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.soongz/com.soongz.ui.PlaylistActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class fragment
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
        at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3576)
        at android.app.ActivityThread.access$800(ActivityThread.java:140)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1243)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4921)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
        at dalvik.system.NativeStart.main(Native Method)
        Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class fragment
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
        at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:313)
        at com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119)
        at …
Run Code Online (Sandbox Code Playgroud)

android android-configchanges android-fragments

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

在Gradle的Java插件的compileTestJava中找不到Component of Dagger 2的生成类

好吧,我正在迁移我的Android项目以使用Clean Architecure:

https://github.com/android10/Android-CleanArchitecture

这意味着我的部分代码在域模块中(纯Java,不依赖于Android).对于这个项目,我使用的是Dagger 2,它使用注释处理器生成源代码(在编译期间).

我的项目有以下Gradle配置:

apply plugin: 'java'

sourceCompatibility = 1.7
targetCompatibility = 1.7

configurations {
    provided
}

sourceSets {
    main {
        compileClasspath += configurations.provided
        runtimeClasspath += configurations.provided
    }
    test {
        compileClasspath += configurations.provided
        runtimeClasspath += configurations.provided
    }
}

dependencies {
    def domainDependencies = rootProject.ext.domainDependencies
    def domainTestDependencies = rootProject.ext.domainTestDependencies

    provided domainDependencies.daggerCompiler
    provided domainDependencies.javaxAnnotation

    compile domainDependencies.dagger
    compile domainDependencies.rxJava
    compile domainDependencies.joda

    testCompile domainTestDependencies.junit
    testCompile domainTestDependencies.assertJ
    testCompile domainTestDependencies.mockito
    testCompile domainTestDependencies.jMockLegacy
    testCompile domainTestDependencies.commonsCsv
}
Run Code Online (Sandbox Code Playgroud)

在我的测试源中,我创建了接口TestComponent,并且Dagger用于生成DaggerTestComponent.当我尝试通过命令行或Android Studio构建我的项目时,我收到无法找到符号的编译错误,然后:任务':domain:compileTestJava'的执行失败.

我试图用'compile'和'testCompile'来改变'提供'.它仍然无法正常工作.

奇怪的是,在compileTestJava失败后,我可以在domain/build/classes/test中 …

java android gradle dagger dagger-2

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

获取java.lang.RuntimeException:通过Maven运行Robolectric时存根

好吧,我有一个奇怪的错误.当我通过IntelliJ运行我的测试时,它没有任何问题.但是如果我使用sure-fire插件或'mvn clean test'命令运行它,我会得到以下异常:

shouldLoadMoreDataOnScrollBeyondTheThreshold(br.com.cybereagle.androidwidgets.listener.EndlessScrollListenerTest)  Time elapsed: 2.73 sec  <<< ERROR!
java.lang.RuntimeException: Stub!
    at junit.framework.Assert.assertTrue(Assert.java:6)
    at br.com.cybereagle.androidwidgets.listener.EndlessScrollListenerTest.shouldLoadMoreDataOnScrollBeyondTheThreshold(EndlessScrollListenerTest.java:36)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:246)
    at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:181)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:59)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:120)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:103)
    at org.apache.maven.surefire.Surefire.run(Surefire.java:169)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
    at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
Run Code Online (Sandbox Code Playgroud)

这是我的测试:

@RunWith(RobolectricTestRunner.class) …
Run Code Online (Sandbox Code Playgroud)

junit android intellij-idea maven robolectric

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

如何使用 PySpark 的 JDBC 覆盖数据而不会丢失架构?

我有一个 DataFrame,我愿意将它写入 PostgreSQL 数据库。如果我只是使用“覆盖”模式,例如:

df.write.jdbc(url=DATABASE_URL, table=DATABASE_TABLE, mode="overwrite", properties=DATABASE_PROPERTIES)
Run Code Online (Sandbox Code Playgroud)

重新创建表并保存数据。但问题是我想将 PRIMARY KEY 和 Indexes 保留在表中。所以,我想要么只覆盖数据,保留表架构,要么在之后添加主键约束和索引。任何一个都可以用 PySpark 完成吗?或者我是否需要连接到 PostgreSQL 并执行命令来自己添加索引?

apache-spark apache-spark-sql pyspark

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

带有CDI托管Bean和有状态会话Bean的LazyInitializationException

我有一个CDI Managed Bean(一个用@Named注释的bean,用于JSF),它注入了一个Stateful Session Bean.这个会话bean就像一个服务,它有实体管理器(用@PersistenceContext(type = PersistenceContextType.EXTENDED)注释)并公开来操作某些实体的方法.这些实体位于托管bean上,即ConversationScoped.然后,JSF调用托管bean的方法,托管bean调用"service"(有状态会话bean)的某个方法.我不知道这是不是最好的设计,但它运作良好.但是有一个实体有一些需要用LAZY获取的集合.第一次打开页面时,它似乎运行良好,但是当我尝试单击任何按钮或执行任何操作时,我都有LazyInitializationException.有人有任何提示吗?我不知道有什么不对劲.我把会话bean放在有状态,扩展持久化上下文.此会话bean在具有实体的托管bean中注入.为什么它会抛出这个例外?如何关闭实体经理?

这是陷入困境的实体的代码:

@Entity
public class ParametrosVingentes implements Serializable {

    public static final String ID = "settings";

    private static final long serialVersionUID = 1L;

    @Id
    private String id;
    @OneToOne
    private ValorHora valorHora;
    @OneToMany
    @JoinTable(
            name="BuscaSistecVingentes",
            joinColumns = @JoinColumn( name="parametros_vingentes_fk"),
            inverseJoinColumns = @JoinColumn( name="agendamento_fk")
    )
    private List<AgendamentoBuscaSistec> agendamentosBuscaSistec;
    @OneToMany
    @JoinTable(
            name="ExportacaoZeusVingentes",
            joinColumns = @JoinColumn( name="parametros_vingentes_fk"),
            inverseJoinColumns = @JoinColumn( name="agendamento_fk")
    )
    private List<AgendamentoExportacaoZeus> agendamentosExportacaoZeus;
    @OneToMany
    @JoinTable(
            name="ImportacaoZeusVingentes",
            joinColumns = @JoinColumn( name="parametros_vingentes_fk"),
            inverseJoinColumns = @JoinColumn( name="agendamento_fk")
    )
    private …
Run Code Online (Sandbox Code Playgroud)

entitymanager stateful-session-bean lazy-initialization jsf-2 ejb-3.1

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

Android - 如何制作组合位图的背景图案?

我知道如何制作重复位图的背景图案.我还看到了一种使用Canvas组合两个位图的方法.但我想制作一个重复的位图与渐变可绘制组合来制作背景.我有一个.png文件,它是部分透明的,我想重复它与渐变drawable(普通渐变XML).

这是PNG:http://subtlepatterns.com/? p = 1203

有没有办法做到这一点?

提前致谢.

android background drawable

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

找到加权重叠区间的最高加权重的区间的算法

嗯,我觉得很难解释,所以我已经做了一个数字来表明这一点.

正如我们在该图中所看到的,有6个时间间隔.每个人都有自己的体重.不透明度越高,重量越高.我想要一个算法来找到具有最高总重量的区间.在该图的情况下,它是间隔5和6的重叠,其是具有最高不透明度的区域.

algorithm

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