小编Jum*_*mpa的帖子

操作栏不显示操作视图图标

我正在使用新的Action Bar支持,我的所有操作视图都显示在溢出中,而不是栏中的图标.我的应用程序适用于7+ API.

HomeActivity:

public class HomeActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ActionBar actionBar = getSupportActionBar();
        actionBar.setTitle(R.string.app_name);
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setHomeButtonEnabled(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.home, menu);
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

home.xml

<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_settings"/>
<item
    android:id="@+id/action_browse"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/title_activity_browse"/>
<item
    android:id="@+id/action_search"
    android:actionViewClass="android.widget.SearchView"
    android:icon="@android:drawable/ic_menu_search"
    android:showAsAction="ifRoom|collapseActionView"
    android:title="@string/text_search"/>
<item
    android:id="@+id/action_scan"
    android:icon="@drawable/action_scan"
    android:showAsAction="always"
    android:title="@string/title_activity_browse"/>
Run Code Online (Sandbox Code Playgroud)

我在4.3上使用Nexus 7,在2.3.3上使用LGP500,没有图标.我还在清单上添加了android:theme ="@ style/Theme.AppCompat.Light.DarkActionBar",我的项目正确引用了官方文档中描述的android-support-v7-appcompat.

android android-actionbar android-support-library android-actionbar-compat

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

棒棒糖进度条着色

我正在使用Lollipop设备(MotoG 2014),我读到了进度条着色,但这不起作用......我得到了默认的进度条颜色.我在这里错过了什么?

<ProgressBar
    style="?android:attr/progressBarStyleLarge"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:backgroundTintMode="src_in"
    android:indeterminate="true"
    android:indeterminateTint="#f00" />
Run Code Online (Sandbox Code Playgroud)

非常感谢.

android android-layout android-theme material-design android-5.0-lollipop

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

Firebase云消息传递API密钥

有哪些方法可以在Firebase控制台中重新生成FCM的API密钥(云消息传递部分)?密钥不可编辑,与Google API控制台中自动生成的密钥不同.由于这种错误配置,我总是从FCM 获得未经授权的401 ...

android firebase google-cloud-messaging firebase-cloud-messaging

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

自动完成没有jQuery UI

我在我的项目中使用jQuery,我需要实现自动完成,但我想避免包含jQuery UI小部件,并希望使用一些特定的外部插件.你能提供一些例子/链接吗?我必须查询返回键值对的远程JSON源.

javascript ajax jquery autocomplete jquery-autocomplete

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

工具栏搜索建议主题

我正在尝试将搜索建议更改为"轻量级主题".我正在使用appcompat-v7:22.2.0库并阅读有关自定义搜索视图小部件(android.support.v7.widget.SearchView)的新功能.

第一部分

工具栏

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
Run Code Online (Sandbox Code Playgroud)

主旋律

<style name="Main.Theme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/red</item>
    <item name="colorPrimaryDark">@color/red_dark</item>
    <item name="searchViewStyle">@style/Main.Theme.SearchView</item>
</style>
Run Code Online (Sandbox Code Playgroud)

SearchView主题

<style name="Main.Theme.SearchView" parent="Widget.AppCompat.Light.SearchView">
    <item name="voiceIcon">@mipmap/test_icon</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这样我就无法影响搜索视图.为了测试它,我正在更改搜索视图中的语音图标,并且它不会从默认值更改.

第二部分

第二个尝试是覆盖工具栏中的叠加主题:

叠加主题

<style name="Main.Theme.Overlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="searchViewStyle">@style/Main.Theme.SearchView</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这样我得到一些反馈,但我失去了"材料设计",特别是我的"旧"提示图标,并且它有下划线.我的最终目标是更改搜索建议行背景:

建议行布局

<item name="suggestionRowLayout">@layout/my_custom_layout</item>
Run Code Online (Sandbox Code Playgroud)

我认为我很难实现这个目标......你能帮助我吗?

android android-layout android-theme android-support-library android-search

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

getExternalFilesdir失败

OnActivityCreated我在做:

activity.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
Run Code Online (Sandbox Code Playgroud)

在logcat我得到:

com.package W/ContextImpl? Failed to ensure directory: /storage/sdcard1/Android/data/com.package/files/Pictures
Run Code Online (Sandbox Code Playgroud)

这种情况只发生在LOLLIPOP(MOTO G 2014)上,KITKAT(Nexus 4)的一切都很好.我在清单上有WRITE_EXTERNAL_STORAGE.我在这里错过了什么?存储可通过文件浏览应用程序(如ES Explorer)安装和访问.

编辑:令人惊讶的是,即使我收到上面报告的警告,文件也会在目录下正确创建.

android android-file

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

等待承诺内部循环

let currentProduct;

for (let i = 0; i < products.length; i++) { 
    currentProduct = products[i];

    subscription.getAll(products[i]._id)
        .then((subs) => {
            update(subs, currentProduct);
        });
}
Run Code Online (Sandbox Code Playgroud)

我正在使用bluebird,方法getAll更新返回promise.我怎么说"等到两个承诺返回,然后更新currentProduct值"?我对JS很新...

javascript node.js promise async-await bluebird

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

Docker 容器内的 Nodemon

我正在尝试在 docker 容器中使用 nodemon:

文件

FROM node:carbon
RUN npm install -g nodemon
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "nodemon" ]
Run Code Online (Sandbox Code Playgroud)

构建/运行命令

docker build -t tag/apt .
docker run -p 49160:8080 -v /local/path/to/apt:/usr/src/app -d tag/apt
Run Code Online (Sandbox Code Playgroud)

将本地卷附加到容器以观察代码更改,会导致一些覆盖和 nodemon 抱怨找不到节点模块(其中任何一个)。我该如何解决这个问题?

node.js docker nodemon dockerfile docker-container

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

折叠工具栏标题消失

我在设计支持库23.0.1上,我正在使用带有视差图像的折叠工具栏布局.我不明白为什么当工具栏完全折叠(固定)时,如果单击一个操作按钮(特别是我刷新其图像),标题就会消失.之后,如果我将标题下拉到总扩展并重新点击操作按钮,标题将返回.

活动布局

<!-- App bar -->
<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="150dp"
    android:fitsSystemWindows="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <!-- Collapsing toolbar layout -->
    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginBottom="32dp"
        app:expandedTitleMarginEnd="64dp"
        app:expandedTitleMarginStart="48dp"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <!-- Image Parallax -->
        <ImageView
            android:id="@+id/header"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:contentDescription=""
            android:fitsSystemWindows="true"
            android:scaleType="centerCrop"
            edo:layout_collapseMode="parallax" />

        <!-- Toolbar -->
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            edo:popupTheme="@style/ThemeOverlay.AppCompat.Light">

        </android.support.v7.widget.Toolbar>

    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<!-- Nested scroll view -->
<android.support.v4.widget.NestedScrollView
    android:id="@+id/nested_scroll_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    edo:layout_behavior="@string/appbar_scrolling_view_behavior">

</android.support.v4.widget.NestedScrollView>
Run Code Online (Sandbox Code Playgroud)

动作菜单布局

<item
    android:id="@+id/action_bookmark"
    android:icon="@mipmap/bookmark_empty_white"
    android:title="@string/add_news_to_bookmarks"
    app:showAsAction="ifRoom" />
Run Code Online (Sandbox Code Playgroud)

选择的选项

@Override
public boolean onOptionsItemSelected(MenuItem item) { …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-menu android-toolbar android-design-library

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

改造多种响应类型

如何使用Retrofit2来解析这两种API响应?

好的响应(HTTP 200):

{
    "data": {
        "foo": "bar"
    }
}
Run Code Online (Sandbox Code Playgroud)

错误响应(HTTP 200):

{
    "error": {
        "foo": "bar"
    }
}
Run Code Online (Sandbox Code Playgroud)

我读过很多问题和教程,但我不知道该怎么做,我尝试过:

GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapterFactory(new ItemTypeAdapterFactory());
Gson gson = gsonBuilder.create();

final Retrofit retrofit = new Retrofit.Builder()
        .client(getOkHttpClient())
        .baseUrl(Constants.API_BASE_URL)
        .addConverterFactory(GsonConverterFactory.create(gson))
        .build();
Run Code Online (Sandbox Code Playgroud)

这是我的 ItemTypeAdapterFactory:

class ItemTypeAdapterFactory implements TypeAdapterFactory {

    public <T> TypeAdapter<T> create(final Gson gson, final TypeToken<T> type) {

        final TypeAdapter<T> delegate = gson.getDelegateAdapter(this, type);
        final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);

        return new TypeAdapter<T>() {

            public void write(JsonWriter out, T value) throws …
Run Code Online (Sandbox Code Playgroud)

java android json gson retrofit2

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