web-dev-qa-db-ja.com

Recycler View AndroidX Libraryをインポートしていませんが、使用しています。なぜ、どのように機能していますか?

build.gradle(アプリ)

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'
}

私の依存関係からわかるように、私はリサイクルビューAndroidxライブラリをインポートしませんでした。

androidx.recyclerview:recyclerview:1.0.0

しかし、以下に示すように、レイアウト(activity_main.xml)と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)
}

この動作の原因は何ですか?

14
EdgeDev

com.google.Android.material:material:1.0.0の依存関係 に従って:

androidx.recyclerview:recyclerview:1.0.0

これは、マテリアルライブラリがRecyclerViewへの推移的な依存関係をすでに取得しており、手動で含める必要がないことを意味します。

16
ianhanniballake

Recycler View AndroidX Libraryをインポートしていませんが、まだ使用しています。なぜ、どのように機能していますか?

com.google.Android.material:material:1.0.0の依存関係を追加したため

androidx.recyclerview:recyclerview:1.0.0をすでに追加している場合は、com.google.Android.material:material:1.0.0を追加する必要はありません。

7
Nilesh Rathod

com.google.Android.material:material:1.0.0RecyclerViewコンポーネントを含むため、外部から追加する必要はありません。

追加した場合com.google.Android.material:material:1.0.0アプリの依存関係に追加する必要はありませんandroidx.recyclerview:recyclerview:1.0.0依存関係に含まれていますマテリアルライブラリに既に含まれています。

追加情報について https://developer.Android.com/jetpack/androidx/migrate/class-mappings

4
Ashvin solanki

私は試してテストしました。com.google.Android.material:material:1.0.0にはRecyclerViewも含まれています。マテリアルデザインの外観をMaterialButtonと同じようにするためにここにあるのかもしれません

1
Zaid Mirza
dependencies{

implementation 'com.google.Android.material:material:1.0.0'

}

または

依存関係{

implementation 'com.Android.support:design:your version'

}

追加済みの場合

com.google.Android.material:material:1.0.0またはcom.Android.support:design:version

以前のバージョンのAndroid recyclerview into design libraryですが、Androidxのバージョンでは、マテリアルライブラリにあります。

依存関係では、recyclerview依存関係は必要ありません。マテリアル/デザインライブラリにすでに追加されている

ここをチェック

詳細Androidライブラリ

1
Kamrujjaman Joy