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

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Каждый раз, когда я переключаюсь между кадрами в нижней панели навигации, происходит задержка. Как мне от этого избавить

Сообщение Anonymous »

У меня есть садовое приложение (Android Studio), которое использует несколько представлений изображений и видео, которые иногда меняются в зависимости от данных. Например, если давление низкое, небо меняется на дождливый день (если высокое, то ясная погода). Он также отображает эти данные с помощью текстовых представлений и имеет нижнюю навигацию в приложении. Но иногда, когда я переключаюсь между кадрами, видеопросмотры не загружаются полностью, как и текстовые представления, содержащие данные о давлении, температуре и влажности. Эти данные, в частности, зависят от реальных датчиков, и для этого я использую Raspberry Pi 5. Он извлекает данные каждые 5 секунд. Вот мой основной код активности и мой UpdateUI, который находится в HomeFragment
//Main Activity vvv

public class MainActivity extends AppCompatActivity {

ActivityMainBinding binding;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

binding = ActivityMainBinding.inflate(getLayoutInflater());
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);
getSupportActionBar().hide();

getSupportFragmentManager().beginTransaction().add(R.id.frame, new HomeFragment()).commit();
setContentView(binding.getRoot());
replaceFragment(new HomeFragment());
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
//fragmentTransaction.add(R.id.frame, new CreditsFragment());
fragmentTransaction.commit();

binding.navview.setOnItemSelectedListener(item -> {

switch (item.getItemId()){

case R.id.Home:
replaceFragment(new HomeFragment());
break;
case R.id.HumidityWindSensor:
replaceFragment(new HumidWindFragment());
break;
case R.id.PressureSensor:
replaceFragment(new PressureFragment());
break;
case R.id.settings:
replaceFragment(new settingsFragment());
break;

}

return false;
});

}

private void replaceFragment(Fragment fragment) {

FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.frame, fragment);
fragmentTransaction.commit();
}

//HomeFragment vvv
//updates garden UI and sky UI
private void updateUI(double temperature, double humidity, double pressure) {

SharedPreferences hot = getActivity().getSharedPreferences("TooHot", Context.MODE_PRIVATE);
SharedPreferences cold = getActivity().getSharedPreferences("TooCold", Context.MODE_PRIVATE);

Float tooHot = hot.getFloat("Hot", 0);
Float tooCold = cold.getFloat("Cold", 0);

//int savedSoil = soilPreferences.getInt("lastSoil", 0);
//SharedPreferences airHumidChange = getActivity().getSharedPreferences("air", Context.MODE_PRIVATE);

if(temperature < tooCold){
temp.setText("Temperature: " + temperature + "°F: " + "Heat On!");
heatercooler.setImageResource(R.drawable.heater);

}
else if(temperature > tooHot){
temp.setText(("Temperature: " + temperature + "°F: " + "Cool Off!"));
heatercooler.setImageResource(R.drawable.coolingontwo);

}
else
{
temp.setText("Temperature: " + temperature + "°F: " + "Just Right!");
heatercooler.setImageResource(R.drawable.offmode);

}

if(pressure > 30.20){
barometer.setText("Inches in Mercury: " + pressure);
barometerTwo.setText("Fair Weather");
w = 0;
}
else if(pressure

Подробнее здесь: https://stackoverflow.com/questions/798 ... -is-lag-ho
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»