Раздувание представления занимает слишком много времени в onCreateView во фрагменте - PullRequest
0 голосов
/ 04 октября 2018

Я использую Fragment внутри Navigation Drawer.В Drawer есть еще 7 опциональных меню и все остальные работают нормально.Только этот фрагмент требует 3 секунды времени для отображения представлений.

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

final View view=inflater.inflate(R.layout.fragment_vehicle_inspection,container,false);

Более того, я использую4 макет включения в XML-части.

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

    <LinearLayout
        android:id="@+id/lat_inspection_vendor_name_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/margin_05dp"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/txt_inspection_vendor_name"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:drawableEnd="@drawable/ic_action_edit"
            android:gravity="center"
            android:maxLines="1"
            android:textColor="@color/colorAccent"
            android:textSize="@dimen/margin_15sp"
            android:textStyle="bold" />
    </LinearLayout>

    <include
        android:id="@+id/include_inspection_function_layout"
        layout="@layout/fragment_inspection_function_layout_card"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/lat_inspection_vendor_name_layout"
        android:layout_marginTop="@dimen/margin_05dp"
        android:visibility="gone" />

    <ScrollView
        android:id="@+id/scroll_inspection"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/include_inspection_function_layout"
        android:layout_marginTop="@dimen/margin_10dp"
        android:focusableInTouchMode="true"
        android:focusable="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <include layout="@layout/fragment_inspection_vendor_details_card" />

            <LinearLayout
                android:id="@+id/lat_inspection_form"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:visibility="gone">

                <include layout="@layout/fragment_inspection_vehicle_form_row_card" />

                <include layout="@layout/fragment_inspection_vehicle_features_row_card" />

                <include layout="@layout/fragment_inspection_vehicle_form_penalty_row_card" />
            </LinearLayout>
        </LinearLayout>
    </ScrollView>
</RelativeLayout>

Я надеюсь, что включаемая часть не влияет на представление с накачкой.

Я использую 26-EditText, 26-флажок и 30-TextViews внутри включенияраскладка.Меня беспокоит, что накачка слишком большого количества просмотров требует времени.

Пожалуйста, помогите мне с этой проблемой.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

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

0 голосов
/ 04 октября 2018

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

...