小编Ben*_*oit的帖子

AppCompat ToolBar popupTheme未在ShareAction MenuItem中使用

上下文

使用AppCompat v7 21.0.0/21.0.2/21.0.3

问题

ToolBar的popupTheme不适用于ShareAction

工具栏上的样式:

<style name="MyActionBarStyle" parent="Widget.AppCompat.Toolbar">
    <item name="android:background">@color/green</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>
Run Code Online (Sandbox Code Playgroud)

溢出菜单项正在使用popupTheme

溢出项目

另一方面,ShareAction没有收到popupTheme.经过一些测试后,我注意到它收到了应用程序:ToolBar的主题因此是黑暗的.

<item name="android:colorBackground">@color/white</item>
Run Code Online (Sandbox Code Playgroud)

ShareAction菜单项

为了获得ShareAction上的黑色文本,我尝试设置了许多属性,并通过设置"android:textColorPrimary"(在ToolBar主题上)我得到了我想要的但是我在ToolBar上的图标也采用了这种奇怪的颜色. .

菜单xml如下:

<?xml version="1.0" encoding="utf-8"?>

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

    <item
        android:id="@+id/ic_share"
        android:icon="@drawable/abc_ic_menu_share_holo_dark"
        android:title="@string/media_share"
        cycle:showAsAction="ifRoom"
        cycle:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
    <item
        android:icon="@drawable/abc_ic_menu_share_holo_dark"
        android:showAsAction="ifRoom"
        android:title="br">
        <menu>
            <item
                android:id="@+id/menuSortNewest"
                android:title="Sort by newest" />
            <item
                android:id="@+id/menuSortRating"
                android:title="Sort by rating" />
        </menu>
    </item>

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

我希望ShareAction和溢出都有popupTheme但事实并非如此

解决方法

我得到一个解决方法后,我会编辑这篇文章

参考:https://code.google.com/p/android/issues/detail? id = 87285 & thanks = 87285 & t = 1419254842

android themes styles android-appcompat android-toolbar

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

AppCompat样式背景传播到ToolBar中的Image

上下文

我正在使用最新的AppCompat v7 lib(21.0.0),我已将我的应用程序从ActionBar迁移到ToolBar

问题

  1. ToolBar中的图像自动获得与ToolBar相同的背景

目前SearchBox是在操作栏上设置的自定义视图(来自之前的实现)我计划切换到SearchView并相应地设置它,但我仍然对我现在面临的问题非常感兴趣.

Img背景

  1. 长按工具栏中的菜单项时,会出现带有提示文本的Toast,并且文本与ToolBar具有相同的背景.

吐司背景

我怎么能避免这个?

这是我的工具栏布局以及样式和主题

layout v_toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/my_awesome_toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:theme="@style/MyActionBarStyle"/>
Run Code Online (Sandbox Code Playgroud)

价值观/ styles.xml

<style name="MyActionBarStyle" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:background">@color/green</item>
    <item name="android:windowActionBarOverlay">true</item>

    <!-- Support library compatibility -->
    <item name="background">@color/green</item>
    <item name="windowActionBarOverlay">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

主题

<style name="MyTheme" parent="AppBaseTheme">
    <!-- Here we setting appcompat’s actionBarStyle -->
    <!-- <item name="actionBarStyle">@style/MyActionBarStyle</item> -->

    <item name="windowActionBar">false</item>
    <!-- ...and here we setting appcompat’s color theming attrs -->
    <item name="colorPrimary">@color/green</item>
    <item name="colorPrimaryDark">@color/green_dark</item>
</style>
Run Code Online (Sandbox Code Playgroud)

问题1的解决方法1

第一个问题的解决方法是在ImageView上设置透明背景

android:background="@color/transparent"
Run Code Online (Sandbox Code Playgroud)

这并不能解决问题.

解决这两个问题

我为ToolBar设置了一个背景 …

android android-appcompat android-toolbar

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

样式Android SearchView下拉弹出窗口

我想知道如何设置Android 4.0下拉弹出窗口的样式SearchView

我正在使用Theme.Sherlock.Light.DarkActionBar,但我不知道如何将下拉搜索样式设置为白色背景和黑色文本?

android android-ui android-theme actionbarsherlock

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

Android Compose - 如何平铺/重复位图/矢量?

Android Compose 平铺图像以用小图案填充背景的方法是什么?

对于没有旋转的位图,一种简单的方法可能是这样的:

@Composable
fun TileImage() {
    val pattern = ImageBitmap.imageResource(R.drawable.pattern_bitmap)

    Canvas(modifier = Modifier.fillMaxSize()) {
//    rotate(degrees = -15f) { // The rotation does not produce the desired effect
        val totalWidth = size.width / pattern.width
        val totalHeight = size.height / pattern.height

        var x = 0f
        var y = 0f
        for (i in 0..totalHeight.toInt()) {
            y = (i * pattern.height).toFloat()
            for (j in 0..totalWidth.toInt()) {
                x = (j * pattern.width).toFloat()

                drawImage(
                    pattern,
                    colorFilter = giftColorFilter,
                    topLeft = Offset(x, y)
                ) …
Run Code Online (Sandbox Code Playgroud)

android design-patterns image tile android-jetpack-compose

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

Android CalendarContract重复活动,包含例外日期

我找不到一种方法来将异常日期插入到重复发生的事件中.

上下文

我正在使用成功的事件解析.ics文件(ical格式).这是.ics

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:TESTING
X-WR-TIMEZONE:Europe/Amsterdam
X-WR-CALDESC:
BEGIN:VTIMEZONE
TZID:Europe/Amsterdam
X-LIC-LOCATION:Europe/Amsterdam
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;TZID=Europe/Amsterdam:20140425T103000
DTEND;TZID=Europe/Amsterdam:20140425T113000
RRULE:FREQ=WEEKLY;BYDAY=FR
EXDATE;TZID=Europe/Amsterdam:20140516T103000
EXDATE;TZID=Europe/Amsterdam:20140502T103000
DTSTAMP:20140425T090449Z
UID:3bb37doi3qcuaih3t03ns0q9jo@google.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=TESTIN
 G;X-NUM-GUESTS=0:mailto:domain.com_o300s@group.calendar.google.com
CREATED:20140425T090310Z
DESCRIPTION:
LAST-MODIFIED:20140425T090427Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:my-recurring-event-with-ex
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)

然后,该事件将通过CalendarContract API插入到Android日历中.

dtstart:20140425T103000 dtend:20140425T113000 rrule:FREQ = WEEKLY; BYDAY = FR

问题:排除日期

如果我现在查询我的日历,我将在2014年4月25日的每个星期五看到一个活动.

问题是我还需要排除一些日期(见ical:2014年5月2日和2014年5月16日)

尝试1

我尝试插入16的exdate可能只使用这样的EXDATE字段: 添加日历事件时的android:EXDATE格式 但是这不起作用,并且基于Android日历源代码甚至没有使用它.

尝试2

我尝试使用CONTENT_EXCEPTION_URI插入异常通过这样的帖子:从原始重复事件中创建异常事件? Google日历代码:https://github.com/android/platform_packages_apps_calendar/blob/master/src/com/android/calendar/EventInfoFragment.java#L1401

ContentValues values2 …
Run Code Online (Sandbox Code Playgroud)

android recurring-events android-calendar calendarcontract

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

电话轮换后,LinearLayoutManager setOrientation无法正常工作

我想出来的新RecyclerView联合标准执行LayoutManagerLinearLayoutManager.我的目标是LayoutManager当设备处于纵向时让我的项目水平绘制,并在设备处于横向时垂直绘制它们.为此我在我的活动中使用以下代码onCreate:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.nextColors);
recyclerView.setAdapter(myAdapter = new MyAdapter(getBaseContext(), myData, myLayout);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
   linearLayoutManager.setOrientation(LinearLayout.HORIZONTAL);
} else {
    linearLayoutManager.setOrientation(LinearLayout.VERTICAL);
}
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
Run Code Online (Sandbox Code Playgroud)

如果我在设备处于横向或纵向模式时启动活动,则此工作正常.但是,当我在此活动中更改方向时,项目始终水平或垂直绘制,具体取决于首次启动活动时设备的方向.这对我来说没有意义,因为在设备旋转之后,活动被重新创建并且LayoutManager应该采取正确的方向.

有没有人知道如何使setOrientation设备方向更改?

android android-recyclerview

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

使用maven和Jenkins的SonarQube 3.7 - Maven会话不会声明顶级项目

上下文

我现在遇到的问题是sonarqube 3.7由maven通过jenkins运行

该项目设置为maven多模块项目,jenkins使用以下参数运行声纳(通过maven):" - pl"

我已将"声纳"3.6更新为"sonarqube"3.7并将"sonar-maven-plugin"更新为3.7

问题

自更新以来,我在jenkins(1.529)中看到以下错误:

[ERROR] Failed to execute goal org.codehaus.sonar:sonar-maven-plugin:3.7:sonar (default-cli) on project xxxxx: Execution default-cli of goal org.codehaus.sonar:sonar-maven-plugin:3.7:sonar failed: Unable to execute Sonar: Maven session does not declare a top level project -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.sonar:sonar-maven-plugin:3.7:sonar (default-cli) on project xxxxx: Execution default-cli of goal org.codehaus.sonar:sonar-maven-plugin:3.7:sonar failed: Unable to execute Sonar
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at …
Run Code Online (Sandbox Code Playgroud)

maven jenkins sonarqube

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

使用Android支持库和Maven的NoClassDefFoundError

使用Maven Android插件的最新版本4.0.0-rc.1,构建中似乎缺少一些类.当我启动应用程序时,我得到了一个例外(启动应用程序的两种可能方式):

  • java.lang.NoClassDefFoundError:android.support.v4.app.TaskStackBuilderHoneycomb
  • java.lang.NoClassDefFoundError:android.support.v4.widget.EdgeEffectCompatIcs

两个缺少的类都在support-v4-21.0.0.aar/libs/internal_impl-21.0.0.jar中.

我的依赖定义:

    <dependency>
        <groupId>com.android.support</groupId>
        <artifactId>support-v4</artifactId>
        <version>21.0.0</version>
        <type>aar</type>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

这是一些配置错误吗?Android Maven插件中的一个错误?

android maven android-support-library android-maven-plugin

5
推荐指数
2
解决办法
2066
查看次数

Android Gradle:在一台设备上安装所有构建类型

在使用GCM,ContentProvider,AccountType时,如何配置项目以便能够在发布版本旁安装调试版本?(不使用口味)

我一直收到错误,例如:INSTALL_FAILED_CONFLICTING_PROVIDERINSTALL_FAILED_DUPLICATE_PERMISSION

android android-gradle-plugin android-productflavors android-build-type android-variants

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

Android 将 kotlin 源代码部署到 Maven 存储库

什么是 gradle 配置以确保 kotlin 源包含在源分类器 jar 中以部署在 maven 存储库中?

android nexus gradle maven kotlin

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