• Почему фрагмент накладывается на другой фрагмент при replace?

    Xandr24
    @Xandr24 Автор вопроса
    Мммм, средне понял на самом деле. Про requireActivity тоже были сомнения по поводу правильности данной записи, но лишь таким способом получилось добиться "смены" фрагмента. Денис, можно пожалуйста очень прошу в лс напрмиер в телеграме тебе написать пару уточняющих вопросов? Я много времени не займу, а здесь отмечу решением вопроса твой ответ!
    Написано
  • Почему фрагмент накладывается на другой фрагмент при replace?

    Xandr24
    @Xandr24 Автор вопроса
    Денис Загаевский, Благодарю!
    Вот код активности
    package com.example.quotes
    
    import android.os.Bundle
    import android.os.Handler
    import androidx.appcompat.app.AppCompatActivity
    import androidx.fragment.app.Fragment
    import com.example.quotes.databinding.ActivityMainBinding
    
    @Suppress("DEPRECATION")
    class MainActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            var binding = ActivityMainBinding.inflate(layoutInflater)
            setTheme(R.style.splashScreenThemes)
    
            setContentView(binding.root)
            replaceFragment(HomeFragment())
    
            binding.bottomNavigationView.setOnItemSelectedListener { item ->
                when(item.itemId) {
                    R.id.home -> {
                        replaceFragment(HomeFragment())
                        true
                    }
                    R.id.profile -> {
                        replaceFragment(ProfileFragment())
                        true
                    }
                    R.id.settings -> {
                        replaceFragment(SettingsFragment())
                        true
                    }
                    else -> false
                }
            }
        }
    
        private fun replaceFragment(fragment: Fragment){
            val transaction = supportFragmentManager.beginTransaction()
            transaction.replace(R.id.frame_layout, fragment)
            transaction.commit()
        }
    
    
    }


    Код фрагмента, из которого вызывается другой фрагмент
    package com.example.quotes
    
    import android.content.Context
    import android.os.Bundle
    import android.util.Log
    import android.view.LayoutInflater
    import android.view.View
    import android.view.ViewGroup
    import android.widget.TextView
    import androidx.core.view.get
    import androidx.fragment.app.Fragment
    import com.example.quotes.databinding.FragmentHomeBinding
    import java.lang.RuntimeException
    
    class HomeFragment: Fragment() {
    
        private lateinit var Quotes: TextView
        private var _binding: FragmentHomeBinding? = null
        private val binding: FragmentHomeBinding
        get() = _binding ?: throw RuntimeException("FragmentHomeBinding is null")
    
        override fun onCreateView(
            inflater: LayoutInflater,
            container: ViewGroup?,
            savedInstanceState: Bundle?
        ): View? {
            _binding = FragmentHomeBinding.inflate(inflater, container, false)
            return binding.root
        }
    
        override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
            super.onViewCreated(view, savedInstanceState)
            initViews(view)
            addListeners(view)
        }
    
        private fun initViews(view: View){
            Quotes = view.findViewById(R.id.textViewQuotes)
        }
    
        private fun addListeners(view: View){
            view.setOnClickListener {
                if (binding.textViewQuotes.id.toString() == R.id.textViewQuotes.toString()){
    
                    requireActivity().supportFragmentManager.beginTransaction()
                        .replace(R.id.homeFragment, ContentFragment.newInstance())
                        .commit()
                }
            }
        }
    }


    XML этого же фрагмента
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout 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/homeFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/purple_200"
        tools:context=".HomeFragment">
    
    
        <TextView
            android:id="@+id/textViewQuotes"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Home Fragment"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:textSize="35dp"/>
    </androidx.constraintlayout.widget.ConstraintLayout>

    XML фрагмента, который вызывается
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout 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/contentFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/purple_200"
        tools:context=".ContentFragment">
    
        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Я  контент"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:textSize="30sp"/>
    </androidx.constraintlayout.widget.ConstraintLayout>


    XML активити
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/main_container"
        android:name="com.example.quotes.HomeFragment"
        tools:context=".MainActivity">
    
        <FrameLayout
            android:id="@+id/frame_layout"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">
        </FrameLayout>
    
        <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/bottomNavigationView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:menu="@menu/bottom_nav_menu"/>
    
    </androidx.constraintlayout.widget.ConstraintLayout>


    Подскажи пожалуйста как правильно сделать!!!
    Написано
  • Почему фрагмент накладывается на другой фрагмент при replace?

    Xandr24
    @Xandr24 Автор вопроса
    Я нашел решение, Денис!
    Ты подтолкнул к ответу. Бэкграунд у меня не был проставлен во фрагменте, который вызывался!
    Благодарю!
    Написано
  • Почему фрагмент накладывается на другой фрагмент при replace?

    Xandr24
    @Xandr24 Автор вопроса
    Денис Загаевский, Привет, благодарю, что откликнулся!
    Вот активность главная
    62304110b1617278192380.jpeg
    А вот xml фрагмента, который вызывается и встает в экран, заменяя предыдущий
    623041353f945100057646.jpeg
    Написано
  • Как сменить фрагмент (android) через 3 секунды?

    Xandr24
    @Xandr24 Автор вопроса
    Олег, Нашел способ сделать splash screen с помощью темы и все ништяк работает!!!
    Написано
  • Как сменить фрагмент (android) через 3 секунды?

    Xandr24
    @Xandr24 Автор вопроса
    Олег, Пенальти ловите от гугла, вы имеете ввиду? Я вообще пока плохо представляю дадут мне или нет консоль разработчика, я еще не регистрировался на ней.
    Авторизацию я думал сделать, но это как вариант позже, пока просто приветствие и ваша идея со splash мне нравится!
    Нашел кстати как сделать splash через MainActivity без дополнительных каких-либо активити или фрагментов
    Написано
  • Как сменить фрагмент (android) через 3 секунды?

    Xandr24
    @Xandr24 Автор вопроса
    Олег, Олег, а реализация с помощью доп активити или как? Сейчас изучаю материал и хочется понять какой тип все же реализовать?
    Написано
  • Как сменить фрагмент (android) через 3 секунды?

    Xandr24
    @Xandr24 Автор вопроса
    Олег, тур это много, у меня не особо функциональное приложение сейчас делается, в трёх соснах не заблудится юзер, но я понял вашу суть, сейчас изучаю сплеш скрин
    Написано
  • Как сменить фрагмент (android) через 3 секунды?

    Xandr24
    @Xandr24 Автор вопроса
    Олег, то есть экран приветствия сделать с помощью сплэш?
    Написано
  • Как сменить фрагмент (android) через 3 секунды?

    Xandr24
    @Xandr24 Автор вопроса
    Денис Загаевский, а как правильно подскажи пожалуйста?
    Написано
  • Как сменить фрагмент (android) через 3 секунды?

    Xandr24
    @Xandr24 Автор вопроса
    Да впринципе сделал.
    replaceFragment(HelloFragment())
    
            val handler = Handler()
            handler.postDelayed({ replaceFragment(HomeFragment()) }, 5000)


    Поставил при запуске прилки HelloFragment, а затем депрекейтнутый Handler через 5 секунд вызывает HomeFragment.
    Вы имеете ввиду почитать про сплеш скрин?
    Написано
  • Как обойти "Just a moment" при get запросе (Python)?

    Xandr24
    @Xandr24 Автор вопроса
    Сорян, убираю Отмечено решением. Данные модули не робят!
    AttributeError: module 'cloudscraper' has no attribute 'create_scraper'

    Там другого атрибута и не показано то. Это решение по второй ссылке, по первой ссылке тоже трабла какая то
    Написано
  • Как обойти "Just a moment" при get запросе (Python)?

    Xandr24
    @Xandr24 Автор вопроса
    сейчас буду пробовать, благодарю!
    Написано
  • Почему не работает вложенный цикл for Python?

    Xandr24
    @Xandr24 Автор вопроса
    Мда...., проксю подтянул из pip install free-proxyИ ничего не поменялось....
    Написано
  • Почему не работает вложенный цикл for Python?

    Xandr24
    @Xandr24 Автор вопроса
    Влад Григорьев, какими какахами?
    Мой цикл возвращает один результат всегда?)
    Написано
  • Почему не работает вложенный цикл for Python?

    Xandr24
    @Xandr24 Автор вопроса
    Влад Григорьев, критикуешь? Покажи пример как это красиво написать!
    Ты букавку 'w' увидел и зная основы говоришь что перезапись? Спору нет, тут 'w' а не 'a', но какое это дело имеет к итоговому результату? Я один раз закидываю в файл данные и все, а изначально он пустой и поэтому mode 'a' мне не нужен.
    Еще раз для тех кто в тик токе.. файл записывается 1 раз, и как видно на скринах выше все робит.
    PS жду пример карсивого кода
    Написано
  • Почему не работает вложенный цикл for Python?

    Xandr24
    @Xandr24 Автор вопроса
    Оооо, нашел и даже от pip, но если Алан знаете где взять прокси отпишите плыз!
    Написано
  • Почему не работает вложенный цикл for Python?

    Xandr24
    @Xandr24 Автор вопроса
    Александр Кошелев, а ну надо проксировать, у меня Jupyter на бурж серваке висит (не мой) поэтому Just a moment не ловит, а сразу цель страницу. Не подскажите где взять проксю рабочую бесплатно?
    Написано
  • Почему не работает вложенный цикл for Python?

    Xandr24
    @Xandr24 Автор вопроса
    Алан Гибизов, Знаете в чем прикол?
    Прикол в том, что я начал переносить код в PyCharm и он не работает!
    А не робит изза того, что сайт на cloudflare подвешен и я получаю
    <title>Just a moment...</title>
    Да, все верно, я также вижу такую превьюху когда захожу на сайт!
    Но когда я делаю через Jupyter то он получает контент целевой странице, а в ином случае такая вот шляпа. Пока не знаю как это решить.
    Вот тут я принтую данные и получаю что контент приходит не целевой страницы а cloudflare предупреждения, ппц!
    data = requests.get(url).text
    print(data)
    Написано
  • Почему не работает вложенный цикл for Python?

    Xandr24
    @Xandr24 Автор вопроса
    Влад Григорьев, Я же тебе написал, что он не перезаписывается!!! Там создается новый файл. Учи основы короче!
    6219bc462f52d232533967.jpeg
    6219bc5046574132921944.jpeg
    Написано