从一项活动转移到另一项活动需要很长时间

问题描述 投票:-1回答:1

在我的应用程序中,我可以注意到,每次我从一项活动转到另一项活动都花了很长时间(1秒或更长时间),而这几乎是瞬间的。我在自己的手机上进行了测试,大约需要2秒钟。我在较新(功能更强大)的服务器上进行了测试,它花费的时间更少,但仍然比应该花费的时间更长。

我不知道我的活动是否很忙,或者我用错误的方式打电话给他们。

从我的MainActivity调用活动:

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Toolbar toolbar;
    private Anuncio anuncio;
    private TextView titulo;
    private CardView cardView1, cardView2, cardView3, cardView4;
    private View include_1, include_2, include_3, include_4, include_5, include_6, include_7, include_8, include_9;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.contenedor_principal);

        anuncio = new Anuncio();
        anuncio.cargarAnuncios(this, R.id.adView_alone);

        toolbar = findViewById(R.id.toolbar_alone);
        setSupportActionBar(toolbar);
        if (getSupportActionBar() != null) getSupportActionBar().setTitle(null);

        titulo = findViewById(R.id.textview_toolbar_titulo_alone);
        titulo.setText(R.string.app_name);

        inicializar();
    }

    private void inicializar() {
        include_1 = findViewById(R.id.include_objetivos);
        include_1.setVisibility(View.GONE);
        include_2 = findViewById(R.id.include_compras);
        include_2.setVisibility(View.GONE);
        include_3 = findViewById(R.id.include_porCuentas);
        include_3.setVisibility(View.GONE);
        include_4 = findViewById(R.id.include_porQuincena);
        include_4.setVisibility(View.GONE);
        include_5 = findViewById(R.id.include_porInteres);
        include_5.setVisibility(View.GONE);
        include_6 = findViewById(R.id.include_lista_ahorros);
        include_6.setVisibility(View.GONE);
        include_7 = findViewById(R.id.include_ingresos);
        include_7.setVisibility(View.GONE);
        include_8 = findViewById(R.id.include_deudas);
        include_8.setVisibility(View.GONE);
        include_9 = findViewById(R.id.include_home_menu);
        include_9.setVisibility(View.VISIBLE);

        cardView1 = findViewById(R.id.menu_cardView_1);
        cardView2 = findViewById(R.id.menu_cardView_2);
        cardView3 = findViewById(R.id.menu_cardView_3);
        cardView4 = findViewById(R.id.menu_cardView_4);

        cardView1.setOnClickListener(this);
        cardView2.setOnClickListener(this);
        cardView3.setOnClickListener(this);
        cardView4.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        Intent intent;

        switch (v.getId()) {
            case R.id.menu_cardView_1:
                intent = new Intent(this, Menu1.class);
                this.startActivity(intent);
                break;

            case R.id.menu_cardView_2:
                intent = new Intent(this, Menu2.class);
                this.startActivity(intent);
                break;

            case R.id.menu_cardView_3:
                intent = new Intent(this, Menu3.class);
                this.startActivity(intent);
                break;

            case R.id.menu_cardView_4:
                intent = new Intent(this, Menu4.class);
                this.startActivity(intent);
                break;
        }
    }

    @Override
    public void onPause() {
        anuncio.pausar();
        super.onPause();
    }

    @Override
    public void onResume() {
        super.onResume();
        anuncio.resumir();
    }

    @Override
    public void onDestroy() {
        anuncio.destruir();
        super.onDestroy();
    }
}

来自MainActivity的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/colorAccent">

<TextView
    android:id="@+id/menu_titulo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:textColor="@color/blanco"
    android:textStyle="bold"
    android:textSize="30sp"
    android:shadowColor="@color/negro_semi_transparente"
    android:shadowDx="10"
    android:shadowDy="10"
    android:shadowRadius="6"
    android:text="Menú Principal"
    android:padding="15dp"
    android:layout_marginTop="30dp" />

<GridLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/menu_titulo"
    android:rowCount="2"
    android:columnCount="2"
    android:padding="20dp">

    <androidx.cardview.widget.CardView
        android:id="@+id/menu_cardView_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="0"
        android:layout_column="0"
        android:layout_gravity="fill"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_margin="8dp"
        app:cardCornerRadius="8dp"
        app:cardElevation="8dp" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_gravity="center_vertical|center_horizontal">

            <ImageView
                android:layout_width="65dp"
                android:layout_height="65dp"
                android:src="@drawable/regalo"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Regalos"
                android:textStyle="bold"
                android:textAlignment="center"/>

        </LinearLayout>

    </androidx.cardview.widget.CardView>

    <androidx.cardview.widget.CardView
        android:id="@+id/menu_cardView_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="0"
        android:layout_column="1"
        android:layout_gravity="fill"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_margin="8dp"
        app:cardCornerRadius="8dp"
        app:cardElevation="8dp" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_gravity="center_vertical|center_horizontal">

            <ImageView
                android:layout_width="65dp"
                android:layout_height="65dp"
                android:src="@drawable/carro"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Carros"
                android:textStyle="bold"
                android:textAlignment="center"/>

        </LinearLayout>

    </androidx.cardview.widget.CardView>

    <androidx.cardview.widget.CardView
        android:id="@+id/menu_cardView_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="1"
        android:layout_column="0"
        android:layout_gravity="fill"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginBottom="15dp"
        app:cardCornerRadius="8dp"
        app:cardElevation="8dp" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_gravity="center_vertical|center_horizontal">

            <ImageView
                android:layout_width="65dp"
                android:layout_height="65dp"
                android:src="@drawable/casa"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Casas"
                android:textStyle="bold"
                android:textAlignment="center"/>

        </LinearLayout>

    </androidx.cardview.widget.CardView>

    <androidx.cardview.widget.CardView
        android:id="@+id/menu_cardView_4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="1"
        android:layout_column="1"
        android:layout_gravity="fill"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginBottom="15dp"
        app:cardCornerRadius="8dp"
        app:cardElevation="8dp" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_gravity="center_vertical|center_horizontal">

            <ImageView
                android:layout_width="65dp"
                android:layout_height="65dp"
                android:src="@drawable/cine"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Cine"
                android:textStyle="bold"
                android:textAlignment="center"/>

        </LinearLayout>

    </androidx.cardview.widget.CardView>

</GridLayout>

活动Regalo XML:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/menu_fondo_3"
android:orientation="vertical">

<TextView
    android:id="@+id/titulo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:textColor="@color/blanco"
    android:textStyle="bold"
    android:textSize="30sp"
    android:shadowColor="@color/negro_semi_transparente"
    android:shadowDx="10"
    android:shadowDy="10"
    android:shadowRadius="6"
    android:text="Regalos"
    android:padding="15dp"
    android:layout_marginTop="30dp" />

<GridLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/titulo"
    android:rowCount="3"
    android:columnCount="1"
    android:padding="20dp">

    <androidx.cardview.widget.CardView
        android:id="@+id/regalo1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_row="0"
        android:layout_column="0"
        android:layout_gravity="fill"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_margin="15dp"
        app:cardCornerRadius="8dp"
        app:cardElevation="8dp" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
            android:layout_gravity="center_vertical|center_horizontal"
            android:padding="15dp">

            <ImageView
                android:layout_width="65dp"
                android:layout_height="65dp"
                android:src="@drawable/regalo"
                android:layout_marginEnd="15dp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Regalo 1"
                android:textStyle="bold"
                android:textSize="20sp"
                android:textAlignment="center"/>

        </LinearLayout>

    </androidx.cardview.widget.CardView>

    <androidx.cardview.widget.CardView
        android:id="@+id/regalo2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_row="1"
        android:layout_column="0"
        android:layout_gravity="fill"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_margin="15dp"
        app:cardCornerRadius="8dp"
        app:cardElevation="8dp" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
            android:layout_gravity="center_vertical|center_horizontal"
            android:padding="15dp">

            <ImageView
                android:layout_width="65dp"
                android:layout_height="65dp"
                android:src="@drawable/regalo"
                android:layout_marginEnd="15dp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Regalo 2"
                android:textStyle="bold"
                android:textSize="20sp"
                android:textAlignment="center"/>

        </LinearLayout>

    </androidx.cardview.widget.CardView>

    <androidx.cardview.widget.CardView
        android:id="@+id/regalo3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_row="2"
        android:layout_column="0"
        android:layout_gravity="fill"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_marginTop="15dp"
        android:layout_marginStart="15dp"
        android:layout_marginEnd="15dp"
        android:layout_marginBottom="20dp"
        app:cardCornerRadius="8dp"
        app:cardElevation="8dp" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
            android:layout_gravity="center_vertical|center_horizontal"
            android:padding="15dp">

            <ImageView
                android:layout_width="65dp"
                android:layout_height="65dp"
                android:src="@drawable/regalo"
                android:layout_marginEnd="15dp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Regalo 3"
                android:textStyle="bold"
                android:textSize="20sp"
                android:textAlignment="center"/>

        </LinearLayout>

    </androidx.cardview.widget.CardView>

</GridLayout>

所有这些XML都通过'include'在彼此内部。在下面,我保留main_container.xml的代码:

<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- Inicio de la Appbar -->
    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <!-- Inicio de la Toolbar-->
        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar_alone"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" >

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

                <TextView
                    android:id="@+id/textview_toolbar_titulo_alone"
                    android:text="@string/app_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textSize="23sp"
                    android:textStyle="bold"
                    android:textColor="@color/blanco" />

            </LinearLayout>

        </androidx.appcompat.widget.Toolbar>
        <!-- Fin de la Toolbar-->

    </com.google.android.material.appbar.AppBarLayout>

    <include
        android:id="@+id/include_menu"
        layout="@layout/menu_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_marginBottom="90dp"
        android:visibility="gone"/>

    <include
        android:id="@+id/include_1"
        layout="@layout/layout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_marginBottom="90dp"
        android:visibility="gone"/>

    <include
        android:id="@+id/include_2"
        layout="@layout/layout2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_marginBottom="90dp"
        android:visibility="gone"/>

    <include
        android:id="@+id/include_3"
        layout="@layout/layout3"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_marginBottom="90dp"
        android:visibility="gone"/>

    <include
        android:id="@+id/include_4"
        layout="@layout/layout4"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_marginBottom="90dp"
        android:visibility="gone"/>

    <include
        android:id="@+id/include_5"
        layout="@layout/layout5"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_marginBottom="90dp"
        android:visibility="gone"/>

    <include
        android:id="@+id/include_6"
        layout="@layout/layout6"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_marginBottom="90dp"
        android:visibility="gone"/>

    <include
        android:id="@+id/include_7"
        layout="@layout/layout7"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_marginBottom="90dp"
        android:visibility="gone"/>

    <include
        android:id="@+id/include_8"
        layout="@layout/layout8"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_marginBottom="90dp"
        android:visibility="gone"/>

    <include
        android:id="@+id/include_9"
        layout="@layout/layout9"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_marginBottom="90dp"
        android:visibility="gone"/>

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView_alone"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/banner_ad_unit_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        app:layout_anchorGravity="bottom|center" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

谢谢。由谷歌翻译翻译。

android android-layout android-activity
1个回答
0
投票

我删除了所有的“ include”,并使用了一个ViewStub来加载布局,具体取决于用户希望看到的布局。

Main_container.xml:

<ViewStub
android:id="@+id/viewStub"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

MainActivity:

viewStub = findViewById(R.id.viewStub);
viewStub.setLayoutResource(R.layout.home_layout);
viewStub.inflate();
© www.soinside.com 2019 - 2024. All rights reserved.