Установить предпочтение порядка фрагментов - PullRequest
0 голосов
/ 06 июня 2019

Я создаю часть своего приложения, где у меня есть основной вид деятельности, где я добавил два фрагмента. Это два идентичных ScrollViews, куда я просто помещаю другой текст. Я хочу сделать предпочтение между ними.

Итак, моя идея такова: У нас есть фрагмент A, который всегда будет отображаться первым, а фрагмент B не виден на экране. Я хотел бы поставить кнопку, чтобы поменять оба фрагмента, когда пользователь захочет.

Итак, как лучше всего развить эту идею? Я публикую код, связанный с моим фрагментом A:

Активность основного фрагмента:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                             android:layout_width="match_parent"
                                             android:layout_height="match_parent"
                                             android:id="@+id/listaMain">
    <fragment android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:name="com.example.comprasapp.Lists.ListsFragments.ListViewSolo"
              android:id="@+id/scrollSoloList"/>

    </LinearLayout>

Фрагмент А:

<ScrollView
             xmlns:android="http://schemas.android.com/apk/res/android"
             xmlns:tools="http://schemas.android.com/tools" 
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:id="@+id/scrollSoloList"
             android:layout_marginTop="8dp">
        <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/textListaSolo" tools:targetApi="o"/>
</ScrollView>

Фрагмент класса А контроллера:

class ListViewSolo : Fragment(){
    var facade = Facade()
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        return inflater.inflate(R.layout.lista_solo, container, true)
    }

    @RequiresApi(Build.VERSION_CODES.O)
    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        view?.findViewById<TextView>(R.id.textListaSolo)?.autoSizeMaxTextSize
        view?.findViewById<TextView>(R.id.textListaSolo)?.text = (facade.setListSolo())//I'm just setting the text on my TextView here
    }
    companion object{
        // Aqui simplemente estás creando un objeto ListViewSolo por si en algun momento tienes que utilizarlo

        fun newInstance(): ListViewSolo {
            return ListViewSolo()
        }
    }

}                     

Если я могу кое-что прояснить, просто спросите это, спасибо.

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Вы можете использовать контейнер для переключения между вашими фрагментами,

Активность основного фрагмента:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                                 android:layout_width="match_parent"
                                                 android:layout_height="match_parent"
                                                 android:id="@+id/listaMain">

            <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
               android:id="@+id/fragment_container"
               android:layout_width="match_parent"
               android:layout_height="match_parent" />

</LinearLayout>

И для переключения между вашими фрагментами вы можете использовать это где угодно:

val fragment = ListViewSolo() // your fragment instance

val transaction = supportFragmentManager.beginTransaction()
                    transaction.replace(R.id.fragment_container, fragment)
                    add.commit()
1 голос
/ 06 июня 2019

что вы не используете ViewPager, его основная цель - достичь ваших критериев.

он также может дать вам отличную анимацию между фрагментами с простой реализацией .

пожалуйста, проверьте это руководство, чтобы узнать, как реализовать ViewPager в вашем приложении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...