你有一个特定的包,你把所有与Dagger相关的课程放在哪里?
或者你把它们放在他们注入的相关课程旁边,例如,如果你有一个MainActivityModule和MainActivityComponent,你把它们放在与你相同的包装中MainActivity.
此外,我见过很多人将组件定义为内部类,例如ApplicationComponent,在Application类中定义的组件.你认为这是一个好习惯吗?
它似乎CoordinatorLayout打破了Espresso行为的行为,如scrollTo()或RecyclerViewActions.scrollToPosition().
对于像这样的布局:
<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.这是因为这个动作只支持ScrollView并NestedScrollView不会扩展它.此处解释了此问题的解决方法,基本上我们可以复制代码scrollTo()并更改约束以支持NestedScrollView.这似乎有效,如果NestedScrollView它不在一个CoordinatorLayout但只要你把它放在CoordinatorLayout滚动动作失败.
对于相同的布局,如果我替换了NestedScrollViewa RecyclerView,则滚动也存在问题.
在这种情况下,我正在使用RecyclerViewAction.scrollToPosition(position).不像NestedScrollView,在这里我可以看到一些滚动发生.但是,它看起来像滚动到错误的位置.例如,如果我滚动到最后一个位置,它会显示倒数第二个但不是最后一个.当我移动RecyclerView了的CoordinatorLayout滚动运作,因为它应该.
目前我们无法CoordinatorLayout为因此问题而使用的屏幕编写任何Espresso测试.任何遇到相同问题或知道解决方法的人?
android android-espresso android-recyclerview coordinator-layout android-nestedscrollview
我正在尝试使用Graph API在Facebook上搜索公共事件.
http://graph.facebook.com/search?q=term&type=event
我注意到大多数结果都无关紧要.例如,我在英国以及在亚洲或美国发生的搜索返回事件.我怎样才能获得英国的活动?我在考虑使用时区,但我不知道该怎么做.
谢谢!
使用新的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
我有一个带有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时似乎会调用它。
谢谢!