小编iva*_*acf的帖子

您如何组织Dagger 2模块和组件?

你有一个特定的包,你把所有与Dagger相关的课程放在哪里?

或者你把它们放在他们注入的相关课程旁边,例如,如果你有一个MainActivityModuleMainActivityComponent,你把它们放在与你相同的包装中MainActivity.

此外,我见过很多人将组件定义为内部类,例如ApplicationComponent,在Application类中定义的组件.你认为这是一个好习惯吗?

java android dagger-2

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

Espresso,当NestedScrollView或RecyclerView在CoordinatorLayout中时滚动不起作用

它似乎CoordinatorLayout打破了Espresso行为的行为,如scrollTo()RecyclerViewActions.scrollToPosition().

NestedScrollView问题

对于像这样的布局:

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        ...

    </android.support.v4.widget.NestedScrollView>

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        ...

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

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

如果我尝试滚动到NestedScrollView使用ViewActions.scrollTo()第一个问题内部的任何视图我发现是我得到了PerformException.这是因为这个动作只支持ScrollViewNestedScrollView不会扩展它.此处解释了此问题的解决方法,基本上我们可以复制代码scrollTo()并更改约束以支持NestedScrollView.这似乎有效,如果NestedScrollView它不在一个CoordinatorLayout但只要你把它放在CoordinatorLayout滚动动作失败.

RecyclerView问题

对于相同的布局,如果我替换了NestedScrollViewa RecyclerView,则滚动也存在问题.

在这种情况下,我正在使用RecyclerViewAction.scrollToPosition(position).不像NestedScrollView,在这里我可以看到一些滚动发生.但是,它看起来像滚动到错误的位置.例如,如果我滚动到最后一个位置,它会显示倒数第二个但不是最后一个.当我移动RecyclerView了的CoordinatorLayout滚动运作,因为它应该.

目前我们无法CoordinatorLayout为因此问题而使用的屏幕编写任何Espresso测试.任何遇到相同问题或知道解决方法的人?

android android-espresso android-recyclerview coordinator-layout android-nestedscrollview

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

如何在Graph API中按国家/地区过滤Facebook事件

我正在尝试使用Graph API在Facebook上搜索公共事件.

http://graph.facebook.com/search?q=term&type=event

我注意到大多数结果都无关紧要.例如,我在英国以及在亚洲或美国发生的搜索返回事件.我怎样才能获得英国的活动?我在考虑使用时区,但我不知道该怎么做.

谢谢!

search facebook facebook-graph-api facebook-events

6
推荐指数
0
解决办法
614
查看次数

附近的API,在后台扫描信标的正确方法是什么?

我正在考虑使用Google的Nearby API来检测信标(Eddystone).目前唯一的目前的做法似乎被调用Nearby.Messages.subscribe()的描述在这里.

问题是这似乎不适合在后台进行连续扫描.我的应用程序需要在后台保持监视信标,因此如果一个变为可见,它将执行对REST API的调用.基本上,我需要类似于Estimote SDK提供的信标监控功能.

使用Nearby API可以实现这一点而不会耗尽电池吗?

android eddystone google-nearby

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

为什么CardView和RecyclerView需要minSdkVersion L?

使用新的Android小部件时CardView,RecyclerView我注意到它们需要minSdkVersion L.因此,如果您的项目使用例如minSdkVersion 14,您将收到如下错误:

> Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:cardview-v7:21.0.0-rc1 
Run Code Online (Sandbox Code Playgroud)

我知道有一种解决方法告诉Gradle忽略minSdkVersion库的库并使用其中一个项目.

<uses-sdk tools:node="replace" />
Run Code Online (Sandbox Code Playgroud)

但是,如果库需要Android L,是否可以安全地忽略此错误并使用旧版本?为什么Google决定不让它们与pre-L版本一起使用?我认为这是因为它不是最终版本?

android gradle android-cardview android-5.0-lollipop android-recyclerview

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

检测适配器上的项目视图已被破坏

我有一个带有BaseAdapter的ListView。我想经常更新列表中的某些项目而不刷新内容。为了实现这一点,我使用观察者模式。我有一个Observable对象,列表中的每个项目都是一个观察者。

    public View getView(final int position, View convertView, final ViewGroup parent) {
        final ItemViewHolder holder;
        final Item item = (Item) getItem(position);
        if (convertView == null) {
            convertView = inflater.inflate(R.layout.item, parent, false);

            /* ADD VIEWS TO HOLDER */

            holder = new ItemViewHolder();

            convertView.setTag(holder);

            ItemObserver observer = new ItemObserver(holder, context);
            mapObservers.put(holder, observer);
            observable.addObserver(observer);
        } else {
            holder = (ItemViewHolder) convertView.getTag();
        }
        //Set values into view etc...
        return convertView;
    }
Run Code Online (Sandbox Code Playgroud)

这很好用,但是问题是:我怎么知道不再需要观察者了?我想检测给定视图何时被破坏,以便从Map中获取观察者并将其从Observable对象中删除。销毁视图时是否调用了任何侦听器?

我尝试过,AbsListView.RecyclerListener.onMovedToScrapHeap(View view)但是在回收View时似乎会调用它。

谢谢!

android listview adapter baseadapter

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