как изменить атрибуты файла XML в моем фрагменте - PullRequest
0 голосов
/ 16 октября 2019

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

test_fragment.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/layout">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Egyptian Pyramids"
        android:textSize="30sp"
        android:id="@+id/textTitle"
        android:textColor="@color/colorPrimary"
            />

    <TextView
        android:id="@+id/textDescription"
        android:layout_width="match_parent"
        android:layout_height="171dp"
        android:padding="10dp"
        android:text="@string/description"
        android:textSize="12sp"
        android:textColor="#000000"/>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:layout_weight="1">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:id="@+id/image1"/>
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:id="@+id/image2"/>
</LinearLayout>
</LinearLayout> 

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

FirstFragment

 public class FirstFragment extends Fragment {


    public FirstFragment () {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View inflate = inflater.inflate(R.layout.test_fragment, container, false);
        return inflate;

    }

}

как изменить атрибуты в файле test_fragment.xml, чтобы показать при перелистывании по каждому фрагменту

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

Вы можете сделать это следующим образом:

1) В вашем фрагменте XML (каждый фрагмент будет иметь свой собственный XML). Каждому фрагменту присваивают различные атрибуты текста и изображения.

2) Или, если вы хотите иметь один XML для всех ваших фрагментов, просто программно измените свои атрибуты:

TEXT_VIEW.setText("...") 
IMAGE.setImageResource(....)

каждый раз, когда вы проводитек новому фрагменту вы можете поймать ваш удар с помощью: addOnPageChangeListener

0 голосов
/ 16 октября 2019

Если я вас правильно понимаю, вы хотите использовать один и тот же макет для всех фрагментов, но с разными значениями времени выполнения в TextView.

Для вашего удобства вам нужно создать несколько классов Fragment и их файлы макетов. ,В противном случае вы можете использовать тот же файл макета (XML) и изменить их значения в созданном Res. Классы фрагментов (как вы указали в вопросе).

Например, FirstFragment -> fragment.xml SecondFragment -> fragment.xml ThirdFragment -> fragment.xml FourthFragment -> fragment.xml

в методе onViewCreated соответствующих классов фрагментов измените свои "атрибуты xml".

ИЛИлучше

FirstFragment -> fragment_one.xml SecondFragment -> fragment_two.xml ThirdFragment -> fragment_three.xml FourthFragment -> fragment_four.xml

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