Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
goodi_tomsk
4 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 83
#1

Не отображать SplashScreen при смене ориентации экрана - Программирование Android

19.04.2016, 17:54. Просмотров 254. Ответов 6

Не могу понять как сделать чтобы сплэш не появлялся снова при смене ориентации экрана?

+ подскажите, почему при горизонтальной ориентации вкладки не по всей ширине. чот не разберусь
Не отображать SplashScreen при смене ориентации экрана
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2016, 17:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не отображать SplashScreen при смене ориентации экрана (Программирование Android):

При смене ориентации экрана накладываются фрагменты - Программирование Android
Юзаю Android.Support.V4.App.Fragment, вроде бы все нормально. При переключении из меню фрагменты скрываю отправляя в "стек" а кликнутый...

Выбрасывает из приложения при смене ориентации экрана - Программирование Android
Здравствуйте. Следующая проблема. Создал папку layout-land в папке res. И при добавлении туда вот этого файла xml: <LinearLayout...

Задний фон при смене ориентации экрана - Программирование Android
Здравствуйте! Мне надо чтобы фон не сжимался так, а как в HTML оптимизировал под размер экрана... Заранее спасибо! (Приложение и картинка...

Потеря вывода при смене ориентации экрана - Программирование Android
Калькулятор вывел результат в компонент textview. Стоит поменять ориентацию экрана и весь результат подсчета пропадает. :(

Пропажа данных при смене ориентации - Программирование Android
При поворачивании телефона все данные обнуляются и вообще такое такое чувство, что приложение только что открылось как это предотвратить

Потеря потока при смене ориентации - Программирование Android
Здравствуйте! У меня приложения связывается по Bluetooth с другими устройствами. Всё работает хорошо. НО! Если перевернуть устройство и...

6
Pablito
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,863
Завершенные тесты: 1
19.04.2016, 18:06 #2
гадать на кофейной гуще без кода и разметки?
0
goodi_tomsk
4 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 83
19.04.2016, 18:15  [ТС] #3
activity_main
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/coordinator"
    tools:context="ru.bunakov.testapplication.MainActivity">
 
    <android.support.v4.view.ViewPager
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:id="@+id/pager"
        android:layout_marginTop="112dp"/>
 
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/app_bar_layout">
 
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"/>
 
        <android.support.design.widget.TabLayout
            android:id="@+id/tab_layout"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:tabIndicatorColor="@android:color/background_light"
            app:tabSelectedTextColor="@android:color/background_light"
            app:tabTextColor="@android:color/background_light"
            />
 
    </android.support.design.widget.AppBarLayout>
 
</android.support.design.widget.CoordinatorLayout>
 
</FrameLayout>
MainActivity
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package ru.bunakov.testapplication;
 
import android.app.FragmentManager;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
 
 
import ru.bunakov.testapplication.adapter.TabAdapter;
 
public class MainActivity extends AppCompatActivity {
 
    FragmentManager fragmentManager;
    PreferenceHelper preferenceHelper;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        PreferenceHelper.getInstance().init(getApplicationContext());
        preferenceHelper = PreferenceHelper.getInstance();
 
        fragmentManager = getFragmentManager();
 
        runSplash();
 
        setUI();
    }
 
    public void runSplash(){
        Splash splash = new Splash();
        fragmentManager.beginTransaction()
                .replace(R.id.content_frame, splash)
                .addToBackStack(null)
                .commit();
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        MenuItem menuItem = menu.findItem(R.id.lang);
        menuItem.setChecked(preferenceHelper.getBoolean(PreferenceHelper.LANG));
        return super.onCreateOptionsMenu(menu);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.lang){
            item.setChecked(!item.isChecked());
            preferenceHelper.putBoolean(PreferenceHelper.LANG, item.isChecked());
        }
        return super.onOptionsItemSelected(item);
    }
 
    private void setUI(){
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        if (toolbar != null){
            toolbar.setTitleTextColor(getResources().getColor(R.color.white));
            setSupportActionBar(toolbar);
        }
        TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
        tabLayout.addTab(tabLayout.newTab().setIcon(android.R.drawable.ic_menu_agenda).setText(R.string.listtab));
        tabLayout.addTab(tabLayout.newTab().setIcon(android.R.drawable.ic_menu_camera).setText(R.string.scalingtab));
        tabLayout.addTab(tabLayout.newTab().setIcon(android.R.drawable.ic_menu_send).setText(R.string.parsingtab));
        tabLayout.addTab(tabLayout.newTab().setIcon(android.R.drawable.ic_menu_mapmode).setText(R.string.maptab));
 
        final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
        TabAdapter tabAdapter = new TabAdapter(fragmentManager, 4);
        viewPager.setAdapter(tabAdapter);
        viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
 
        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                viewPager.setCurrentItem(tab.getPosition());
            }
 
            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
 
            }
 
            @Override
            public void onTabReselected(TabLayout.Tab tab) {
 
            }
        });
    }
}
fragment_splash
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:background="@color/splash"
    tools:context="ru.bunakov.testapplication.Splash">
 
 
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@mipmap/splash" />
 
</FrameLayout>
0
Pablito
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,863
Завершенные тесты: 1
19.04.2016, 18:40 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
таблаяуту можно добавить пару атрибутов, должно порешать вопрос с табами
XML
1
2
                app:tabGravity="fill"
                app:tabMaxWidth="0dp"
если разметка одинаковая для портретной и ландшафтной ориентации то можно вообще отключить пересоздание активити при повороте
в манифесте добавить
XML
1
android:configChanges="orientation|screenSize"
1
goodi_tomsk
4 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 83
19.04.2016, 18:57  [ТС] #5
так вот вся проблема как раз в том что необходимо чтобы обе ориентации рабочие были.
верстка для порт и лэндскейп одна.
0
Pablito
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,863
Завершенные тесты: 1
19.04.2016, 18:59 #6
по первому вопрос получилось?
по второму я об этом и говорю - активити просто не будет пересоздаваться, экран будет менять ориентацию
0
goodi_tomsk
4 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 83
19.04.2016, 19:07  [ТС] #7
по поводу сплеш скрин.
я вот подумал. а если сделать какое то поле класса в MainActivity которое при первом запуске будет изменять значение этого поля и тогда перед запуском сплешскрина (runSplash) делать проверку значения этого поля.
А в методе onDestroy, предположим, сбрасывать значение. Хотя я преподлагаю что это можно и не делать.
С вкладками получилось! Спасибо! Надо со сплешскрином с этим разобраться....


сделал так

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.bunakov.testapplication">
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        >
        <activity android:name=".MainActivity"
            android:configChanges="orientation|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
    </application>
 
</manifest>
вроде ок!
Спасибо!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2016, 19:07
Привет! Вот еще темы с ответами:

Бесшовное проигрывание видео при смене ориентации - Программирование Android
Предложите пример или подскажите каким образом можно организовать бесшовное проигрывание видео при смене ориентации устройства?

Перезагрузка списка при смене ориентации приложения - Программирование Android
Приветствую. Имеется приложение построено на фрагментах . В приложении есть фрагмент с listview в который загружается информации из базы...

Обнуляется массив при смене ориентации устройства - Программирование Android
Здравствуйте. Суть такова. В активити создается массив из путей к изображениям, которые делаются при помощи камеры устройства. Потом...

Android label меняет размер текста при смене ориентации - Программирование Android
Я заметил что текст названия приложения меняет свой размер при смене ориентации. Но в большинстве приложений нет такого. Где находится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
19.04.2016, 19:07
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru