У меня есть садовое приложение (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
Каждый раз, когда я переключаюсь между кадрами в нижней панели навигации, происходит задержка. Как мне от этого избавить ⇐ Android
Форум для тех, кто программирует под Android
1763058535
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79819309/every-time-i-switch-between-frames-on-my-bottom-navigation-view-their-is-lag-ho[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия