build.gradle (application)
Android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.todolistapp"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
// Room
def room_version = "2.0.0"
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
// ViewModel and LiveData
def lifecycle_version = "2.0.0"
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
// For Floating Action Button
implementation 'com.google.Android.material:material:1.0.0'
}
comme vous pouvez le voir dans mes dépendances, je n'ai pas importé la bibliothèque Androidx vue recyclée.
androidx.recyclerview: recyclerview: 1.0.0
mais comme indiqué ci-dessous, je peux l'utiliser confortablement dans ma mise en page (activity_main.xml) et le code MainActivity.
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
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">
<androidx.recyclerview.widget.RecyclerView
Android:id="@+id/recyclerViewTasks"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:clipToPadding="false"
Android:paddingBottom="80dp"/>
<com.google.Android.material.floatingactionbutton.FloatingActionButton
Android:id="@+id/fab"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom|end"
Android:layout_margin="16dp"
Android:tint="@Android:color/white"
app:srcCompat="@Android:drawable/ic_input_add"/>
</FrameLayout>
MainActivity.kt
import kotlinx.Android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity(), TaskAdapter.TaskViewCliskListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
recyclerViewTasks.layoutManager = LinearLayoutManager(this)
}
Quel est responsable de ce comportement?
Selon les dépendances de com.google.Android.material:material:1.0.0
:
androidx.recyclerview: recyclerview: 1.0.0
Cela signifie que la bibliothèque de matériaux prend déjà une dépendance transitoire de RecyclerView et que vous n'avez pas besoin de l'inclure manuellement vous-même.
Je n'ai pas importé la bibliothèque Recycler View AndroidX, mais j'utilise. Pourquoi et comment ça marche?
Parce que vous avez ajouté les dépendances de com.google.Android.material:material:1.0.0
Pas besoin d'ajouter androidx.recyclerview:recyclerview:1.0.0
si vous avez déjà ajouté com.google.Android.material:material:1.0.0
com.google.Android.material:material:1.0.0
Inclut le composant RecyclerView
Vous n'avez donc pas besoin de l'ajouter en externe.
si vous avez ajouté com.google.Android.material:material:1.0.0
à vos dépendances d'application, vous n'avez pas besoin d'ajouter androidx.recyclerview:recyclerview:1.0.0
à vos dépendances car il est déjà inclus dans la bibliothèque de matériaux .
Pour plus d'informations https://developer.Android.com/jetpack/androidx/migrate/class-mappings
J'ai essayé et testé. com.google.Android.material:material:1.0.0
inclut également RecyclerView
. Peut-être est-ce là pour donner au design du matériau un aspect n semblable à celui de MaterialButton
dependencies{
implementation 'com.google.Android.material:material:1.0.0'
}
ou
dépendances {
implementation 'com.Android.support:design:your version'
}
si vous avez déjà ajouté
com.google.Android.material: matériel: 1.0.0 ou com.Android.support:design:version
dans la version précédente de Android recyclerview dans la bibliothèque de conception, mais dans la version d'Androidx sa bibliothèque de matériaux.
dans vos dépendances, les dépendances de recyclage ne sont pas nécessaires. son déjà ajouté dans la bibliothèque de matériaux/conception
pour les détails Android Library