Я работаю над приложением, которое в значительной степени опирается на компоновку ящика навигации, но когда я загружаю просмотр таблицы, у моего Galaxy S10 наблюдается огромное отставание, которое должно справиться с этим.
package com.redacted.redacted;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
import com.google.android.material.navigation.NavigationView;
public class MainActivity extends AppCompatActivity {
private static int SPLASH_SCREEN_TIME_OUT=2000;
private AppBarConfiguration mAppBarConfiguration;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view);
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
mAppBarConfiguration = new AppBarConfiguration.Builder(
R.id.nav_yourworld, R.id.nav_yourcountry,R.id.nav_yourrealcountry, R.id.nav_yourstate)
.setDrawerLayout(drawer)
.build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
NavigationUI.setupWithNavController(navigationView, navController);
Toast.makeText(getApplicationContext(), "Data Imported Successfully",Toast.LENGTH_SHORT).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onSupportNavigateUp() {
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
return NavigationUI.navigateUp(navController, mAppBarConfiguration)
|| super.onSupportNavigateUp();
}
}
Я не знаю, как бы это исправить, чтобы закрытие ящика и рендеринг таблицы происходили раздельно, чтобы не сильно отставать от старых телефонов.
Мой просмотр таблицы здесь, и ему дают json и затем анализируется в таблице.
package com.redacted.redacted.ui.tableview;
import android.view.Gravity;
import com.redacted.redacted.data.database.entity.States;
import com.redacted.redacted.ui.tableview.model.CellModel;
import com.redacted.redacted.ui.tableview.model.ColumnHeaderModel;
import com.redacted.redacted.ui.tableview.model.RowHeaderModel;
import java.util.ArrayList;
import java.util.List;
/**
* Created by evrencoskun on 4.02.2018.
*/
public class MyTableViewModel {
// View Types
public static final int GENDER_TYPE = 1;
public static final int MONEY_TYPE = 2;
private List<ColumnHeaderModel> mColumnHeaderModelList;
private List<RowHeaderModel> mRowHeaderModelList;
private List<List<CellModel>> mCellModelList;
public int getCellItemViewType(int column) {
switch (column) {
/*
case 5:
// 5. column header is gender.
return GENDER_TYPE;
case 8:
// 8. column header is Salary.
return MONEY_TYPE;
*/
default:
return 0;
}
}
/*
- Each of Column Header -
"Id"
"Name"
"Nickname"
"Email"
"Birthday"
"Gender"
"Age"
"Job"
"Salary"
"CreatedAt"
"UpdatedAt"
"Address"
"Zip Code"
"Phone"
"Fax"
*/
public int getColumnTextAlign(int column) {
switch (column) {
// Id
case 0:
return Gravity.CENTER;
// Name
case 1:
return Gravity.LEFT;
// Nickname
case 2:
return Gravity.LEFT;
// Email
case 3:
return Gravity.LEFT;
// BirthDay
case 4:
return Gravity.CENTER;
// Gender (Sex)
case 5:
return Gravity.CENTER;
// Age
case 6:
return Gravity.CENTER;
// Job
case 7:
return Gravity.LEFT;
// Salary
case 8:
return Gravity.CENTER;
// CreatedAt
case 9:
return Gravity.CENTER;
// UpdatedAt
case 10:
return Gravity.CENTER;
// Address
case 11:
return Gravity.LEFT;
// Zip Code
case 12:
return Gravity.RIGHT;
// Phone
case 13:
return Gravity.RIGHT;
// Fax
case 14:
return Gravity.RIGHT;
default:
return Gravity.CENTER;
}
}
private List<ColumnHeaderModel> createColumnHeaderModelList() {
List<ColumnHeaderModel> list = new ArrayList<>();
// Create Column Headers
list.add(new ColumnHeaderModel("State"));
list.add(new ColumnHeaderModel("Cases"));
list.add(new ColumnHeaderModel("Today's Cases"));
list.add(new ColumnHeaderModel("Deaths"));
list.add(new ColumnHeaderModel("Today's Deaths"));
list.add(new ColumnHeaderModel("Active Cases"));
return list;
}
private List<List<CellModel>> createCellModelList(List<States> stateList) {
List<List<CellModel>> lists = new ArrayList<>();
// Creating cell model list from User list for Cell Items
// In this example, State list is populated from web service
for (int i = 0; i < stateList.size(); i++) {
States state_data = stateList.get(i);
List<CellModel> list = new ArrayList<>();
// The order should be same with column header list;
list.add(new CellModel("1-" + i, state_data.state)); // "Id"
list.add(new CellModel("2-" + i, state_data.cases)); // "Name"
list.add(new CellModel("3-" + i, state_data.todayCases)); // "Nickname"
list.add(new CellModel("4-" + i, state_data.deaths)); // "Email"
list.add(new CellModel("5-" + i, state_data.todayDeaths)); // "BirthDay"
list.add(new CellModel("6-" + i, state_data.active));
// Add
lists.add(list);
}
return lists;
}
private List<RowHeaderModel> createRowHeaderList(int size) {
List<RowHeaderModel> list = new ArrayList<>();
for (int i = 0; i < size; i++) {
// In this example, Row headers just shows the index of the TableView List.
list.add(new RowHeaderModel(String.valueOf(i + 1)));
}
return list;
}
public List<ColumnHeaderModel> getColumHeaderModeList() {
return mColumnHeaderModelList;
}
public List<RowHeaderModel> getRowHeaderModelList() {
return mRowHeaderModelList;
}
public List<List<CellModel>> getCellModelList() {
return mCellModelList;
}
public void generateListForTableView(List<States> states) {
mColumnHeaderModelList = createColumnHeaderModelList();
mCellModelList = createCellModelList(states);
mRowHeaderModelList = createRowHeaderList(states.size());
}
}
Просмотр таблицы зачисляется кому-то еще, но именно этот просмотр таблицы является причиной, по которой вещи так сильно отстают.