我阅读了Firestore文档和互联网上的所有文章(stackoverflow)关于Firestore分页但没有运气.我试图在docs中实现确切的代码,但没有任何反应.我有一个基本的数据库项目(超过1250或更多),我想逐步得到它们.通过滚动来加载15个项目(到数据库中的最后一项).
如果使用docs代码:
// Construct query for first 25 cities, ordered by population
Query first = db.collection("cities")
.orderBy("population")
.limit(25);
first.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot documentSnapshots) {
// ...
// Get the last visible document
DocumentSnapshot lastVisible = documentSnapshots.getDocuments()
.get(documentSnapshots.size() -1);
// Construct a new query starting at this document,
// get the next 25 cities.
Query next = db.collection("cities")
.orderBy("population")
.startAfter(lastVisible)
.limit(25);
// Use the query for pagination
// ...
}
});
Run Code Online (Sandbox Code Playgroud)
怎么做?文档没有太多细节.
PS:用户滚动时我需要使用回收站视图(不是列表视图).谢谢
我有 100 个元素的集合。在此集合中,只有两个元素的字段available设置为 true。如果我使用这个查询:
db.collection("elements").whereEqualTo("available", true);
Run Code Online (Sandbox Code Playgroud)
我得到 2 个元素。我是按 2 次读取操作还是 100 次读取操作计费?
谢谢
我正在使用带有 afragment和 a的以下活动布局BottomNavigationView:
<LinearLayout 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="match_parent"
android:orientation="vertical">
<fragment
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/navigation_bottom"
app:defaultNavHost="true"/>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bottom_navigation_view"
app:menu="@menu/bottom_navigation_menu"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
并在我的导航布局中定义了三个片段:
<navigation
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/navigation_bottom"
app:startDestination="@id/firstFragment">
<fragment
android:id="@+id/firstFragment"
android:name="fragments.FirstFragment"
android:label="fragment_first"
tools:layout="@layout/fragment_first" />
//The other two fragments
</navigation>
Run Code Online (Sandbox Code Playgroud)
在我的活动中,我使用以下代码:
navController = Navigation.findNavController(this, R.id.fragment);
BottomNavigationView bnw = findViewById(R.id.bottom_navigation_view);
NavigationUI.setupWithNavController(bnw, navController);
NavigationUI.setupActionBarWithNavController(this, navController);
Run Code Online (Sandbox Code Playgroud)
这是我的onSupportNavigateUp方法:
@Override
public boolean onSupportNavigateUp() {
return Navigation.findNavController(this, R.id.fragment).navigateUp();
}
Run Code Online (Sandbox Code Playgroud)
但是当我按下第二个图标(片段)时,什么也没有发生。如何解决这个问题?谢谢!
有什么方法可以将Drawable文件夹中存在的矢量drawable(.XML文件)转换为.PNG文件?如果可以,可以在Android Studio中完成吗?
我正在使用带有 afragment和 a的以下活动布局BottomNavigationView:
<LinearLayout 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="match_parent"
android:orientation="vertical">
<fragment
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/fragment"
android:layout_weight="1"
android:name="androidx.navigation.fragment.NavHostFragment"
app:newGraph="@navigation/navigation_bottom"
app:defaultNavHost="true"/>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bottom_navigation_view"
app:menu="@menu/bottom_navigation_menu"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
在我的活动中,我正在尝试设置导航控制器,但出现以下错误:
无法解析方法“setupWithNavController(androidx.navigation.NavController)”
这是我尝试过的:
navController = Navigation.findNavController(this, R.id.fragment);
BottomNavigationView bnv = findViewById(R.id.bottom_navigation_view);
bnv.setupWithNavController(navController); //Error
NavigationUI.setupActionBarWithNavController(this, navController);
Run Code Online (Sandbox Code Playgroud)
我的依赖:
implementation 'android.arch.navigation:navigation-fragment:1.0.0-rc02'
implementation 'android.arch.navigation:navigation-ui:1.0.0-rc02'
Run Code Online (Sandbox Code Playgroud)
我该如何接线?谢谢!
在我的AndroidManifest.xml文件中,我有两个活动:
<activity android:name=".activities.LoginActivity"/>
<activity android:name=".activities.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
根据我的应用逻辑,如果我已登录,则会直接重定向到MainActivity,否则重定向到LoginActivity。第一次打开应用程序时,它LoginActivity是打开的,但在后台MainActivity也被称为。如何阻止这种情况的发生?但是没有以LoginActivity做为主要活动吗?