From 7cf69227f9a5a3219bccca28a3399d1fd2a4ad3b Mon Sep 17 00:00:00 2001 From: DariaMerkusheva Date: Sat, 18 Jan 2025 17:51:39 +0500 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=201,?= =?UTF-8?q?2=20=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 6 +- app/src/main/AndroidManifest.xml | 13 +++++ .../otus/gpb/homework/fragments/ActivityA.kt | 26 +++++++++ .../otus/gpb/homework/fragments/ActivityB.kt | 35 +++++++++++ .../otus/gpb/homework/fragments/FragmentA.kt | 49 ++++++++++++++++ .../otus/gpb/homework/fragments/FragmentAA.kt | 36 ++++++++++++ .../otus/gpb/homework/fragments/FragmentAB.kt | 22 +++++++ .../otus/gpb/homework/fragments/FragmentBA.kt | 58 +++++++++++++++++++ .../otus/gpb/homework/fragments/FragmentBB.kt | 34 +++++++++++ .../gpb/homework/fragments/MainActivity.kt | 10 ++++ app/src/main/res/layout/activity_a.xml | 15 +++++ app/src/main/res/layout/activity_b.xml | 22 +++++++ app/src/main/res/layout/activity_main.xml | 21 +++++++ app/src/main/res/layout/fragment_a.xml | 28 +++++++++ app/src/main/res/layout/fragment_aa.xml | 23 ++++++++ app/src/main/res/layout/fragment_ab.xml | 14 +++++ app/src/main/res/layout/fragment_ba.xml | 22 +++++++ app/src/main/res/layout/fragment_bb.xml | 22 +++++++ build.gradle | 4 +- 19 files changed, 455 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/otus/gpb/homework/fragments/ActivityA.kt create mode 100644 app/src/main/java/otus/gpb/homework/fragments/ActivityB.kt create mode 100644 app/src/main/java/otus/gpb/homework/fragments/FragmentA.kt create mode 100644 app/src/main/java/otus/gpb/homework/fragments/FragmentAA.kt create mode 100644 app/src/main/java/otus/gpb/homework/fragments/FragmentAB.kt create mode 100644 app/src/main/java/otus/gpb/homework/fragments/FragmentBA.kt create mode 100644 app/src/main/java/otus/gpb/homework/fragments/FragmentBB.kt create mode 100644 app/src/main/res/layout/activity_a.xml create mode 100644 app/src/main/res/layout/activity_b.xml create mode 100644 app/src/main/res/layout/fragment_a.xml create mode 100644 app/src/main/res/layout/fragment_aa.xml create mode 100644 app/src/main/res/layout/fragment_ab.xml create mode 100644 app/src/main/res/layout/fragment_ba.xml create mode 100644 app/src/main/res/layout/fragment_bb.xml diff --git a/app/build.gradle b/app/build.gradle index c5cf1b8..009dc4d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,9 +3,9 @@ plugins { id 'org.jetbrains.kotlin.android' } -kotlin { - jvmToolchain(17) -} +//kotlin { +// jvmToolchain(17) +//} android { compileSdk 34 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9604b34..c2e9051 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,6 +21,19 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/java/otus/gpb/homework/fragments/ActivityA.kt b/app/src/main/java/otus/gpb/homework/fragments/ActivityA.kt new file mode 100644 index 0000000..1caf9be --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/fragments/ActivityA.kt @@ -0,0 +1,26 @@ +package otus.gpb.homework.fragments + +import android.os.Bundle +import android.widget.Button +import androidx.appcompat.app.AppCompatActivity + +class ActivityA : AppCompatActivity() { + + private lateinit var fragmentA: FragmentA + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_a) + + if (savedInstanceState == null) { + + fragmentA = FragmentA() + + supportFragmentManager.beginTransaction() + .replace(R.id.fragmentA_container, fragmentA) + .addToBackStack(null) + .commit() + } + + } +} \ No newline at end of file diff --git a/app/src/main/java/otus/gpb/homework/fragments/ActivityB.kt b/app/src/main/java/otus/gpb/homework/fragments/ActivityB.kt new file mode 100644 index 0000000..34e8503 --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/fragments/ActivityB.kt @@ -0,0 +1,35 @@ +package otus.gpb.homework.fragments + +import android.content.res.Configuration +import android.os.Bundle +import android.view.View +import android.widget.FrameLayout +import androidx.appcompat.app.AppCompatActivity +import java.util.Objects + +class ActivityB : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_b) + + // ландшафтный режим - отобразить оба фрагмента одновременно + if (isLandscape()) { + findViewById(R.id.frameLayout_bb).visibility = View.VISIBLE + supportFragmentManager.beginTransaction() + .replace(R.id.frameLayout_ba, FragmentBA()) + .replace(R.id.frameLayout_bb, FragmentBB()) + .commit() + } + else { + // портретный режим режим - отобразить только один фрагмент + findViewById(R.id.frameLayout_bb).visibility = View.GONE + supportFragmentManager.beginTransaction() + .replace(R.id.frameLayout_ba, FragmentBA()) + .commit() + } + } + + private fun isLandscape() = + Objects.equals(Configuration.ORIENTATION_LANDSCAPE, resources.configuration.orientation) +} \ No newline at end of file diff --git a/app/src/main/java/otus/gpb/homework/fragments/FragmentA.kt b/app/src/main/java/otus/gpb/homework/fragments/FragmentA.kt new file mode 100644 index 0000000..376741f --- /dev/null +++ b/app/src/main/java/otus/gpb/homework/fragments/FragmentA.kt @@ -0,0 +1,49 @@ +package otus.gpb.homework.fragments + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Button +import androidx.activity.OnBackPressedCallback +import androidx.fragment.app.Fragment + + +class FragmentA : Fragment() { + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle?, + ): View? { + val view = inflater.inflate(R.layout.fragment_a, container, false) + val openFragmentAAButton = view.findViewById