Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Ошибки рендеринга после установки android-support v4

Всем привет!
Случилась непонятная фигня, решил адаптировать свое приложение под устройства с android 4 и выше, установил библиотеку android-support v4, и тут понеслись ошибки рендеринга. Я вообще новичек в этом деле и для меня пока еще это лес. Удалил библиотеку, думал все встанет на место, ан нет, так и остались те ошибки вылезать, подскажите что делать? куда смотреть кроме гугла)))

Вот ошибки:
The following classes could not be instantiated:
-*android.support.design.widget.NavigationView (Open Class, Show Exception, Clear Cache)
-*android.support.v7.widget.ActionBarContainer (Open Class, Show Exception, Clear Cache)
-*android.support.design.widget.AppBarLayout (Open Class, Show Exception, Clear Cache)
-*android.support.v7.widget.ActionBarContextView (Open Class, Show Exception, Clear Cache)
-*android.support.v7.app.WindowDecorActionBar (Open Class, Show Exception, Clear Cache)
Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE. If this is an unexpected error you can also try to build the project, then manually refresh the layout. Exception Details java.lang.NoSuchMethodError: android.support.v4.view.ViewCompat.setBackground(Landroid/view/View;Landroid/graphics/drawable/DrawableV **at android.support.design.widget.NavigationView.<init>(NavigationView.java:116) **at android.support.design.widget.NavigationView.<init>(NavigationView.java:100) **at java.lang.reflect.Constructor.newInstance(Constructor.java:423) **at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) **at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858) **at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) **at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) **at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) **at android.view.LayoutInflater.inflate(LayoutInflater.java:518) **at android.view.LayoutInflater.inflate(LayoutInflater.java:397) Copy stack to clipboard

Добавлено через 3 минуты
Пробовал и чистку и ребилд и чистку кэша , не помогло
Ответ:
Сообщение от hossen
Скачал файл android-support v4, вложил его в папку libs, в программе во вкладке "структура проекта" в депенденсис указал эту библиотеку
Вот это в студии делается намного проще.
Вопрос: Eclipse proguard public class android.support.v7.internal.widget.ActionBarView.HomeView

Добрый день. Сейчас изучаю разработку под андроид. Споткнулся на следующей ошибке
This class should be public (android.support.v7.internal.widget.ActionBarView.HomeView)

пробовал фиксить разными способами proguard-project.txt, но эффекта 0.
Может подскажете?
Приложение чистое, дефолтное, которое создаётся при создании Android application project. правки вносились только на удаления всяких ошибок "color" на "android:color", error на warning для translation и т.д.


Текущий вид:
-keep public class android.support.v7.internal.widget.ActionBarView.HomeView
-keep public class android.support.v7.internal.widget.ActionBarView
-keepclassmembers class android.support.v7.internal.widget.ActionBarView{
public *;
}
-keepclassmembers class android.support.v7.internal.widget.ActionBar{
public *;
}
-keepclassmembers class android.support.v7.internal.widget.ActionBarView.HomeView{
public *;
}

PS: IDE Eclipse Kepler, ADT 22.6.1, SDK adt-bundle-windows-x86_64-20131030
Ответ: Спасибо, помогло
Вопрос: Как убрать эффект нажатия в TabLayout

Привет всем! При нажатии на tab на мгновение появляется соответствующий "эффект нажатия". Как сделать так, чтобы просто менялись иконки без каких-либо эффектов.

TabLayout
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 <android.support.design.widget.TabLayout
            android:background="@color/white"
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            app:tabIndicatorColor="@android:color/white"
            app:tabIndicatorHeight="0dp"
 
 
 
            />
Tab
XML
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 
<item android:drawable="@drawable/live_flow_black"
    android:state_selected="true" />
 
<item android:drawable="@drawable/live_flow_white" />
</selector>
Ответ:
XML
1
app:tabBackground="@android:color/transparent"
не поможет?
Вопрос: Как подключить com.android.support:design в Eclipse

Доброго дня!
Недавно вышла новая библиотека com.android.support:design - вопрос как её подключить в среде Eclipse?
От куда взять/установить/скачать и в дальнейшем использовать в своих проектах. Все примеры что я нашел - относятся к Android Studia...
За ранее спасибо.
Ответ: upp
Вопрос: Как заставить работать ViewPager + TabLayout в ScrollView?

Здравствуйте.
Столкнулся с проблемой - ViewPager напрочь отказывается отображаться в ScrollView. При этом вне ScrollView всё работает как надо. Ошибок система никаких не выдаёт.
В попытка решить эту проблему я использовал решения с этих сайтов:
stackoverflow.com/questions/7381360/is-it-possible...
muratonnet.blogspot.ru/2014/01/android-viewpager-i...
и ещё нескольких не относящих на прямую к проблеме.

Вот шаблон layout для фрагмента в котором я вывожу ViewPager
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
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.strateg.test.NawigationDrawer"
    tools:showIn="@layout/app_bar_nawigation_drawer"
    android:id="@+id/main_layout">
 
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
 
    <include layout="@layout/details_project_page"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ></include>
 
    </ScrollView>
 
</FrameLayout>
Вот шаблон ViewPager + TabLayout
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
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/layout_details_page_project">
    <android.support.design.widget.TabLayout
       android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tab_layout_details_project"
        app:tabIndicatorColor = "@color/color_blue_text"
        app:tabIndicatorHeight="6dp"
        app:tabSelectedTextColor="@color/color_black_head_project_page"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
         />
 
    <android.support.v4.view.ViewPager
 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/content_details_tabs_layout"
        app:layout_behavior = "@string/appbar_scrolling_view_behavior"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_above="@+id/tab_layout_details_project"
        android:fillViewport="true"
        android:forceHasOverlappingRendering="false"
        android:nestedScrollingEnabled="false"
        android:touchscreenBlocksFocus="false"
        android:transitionGroup="false">
 
    </android.support.v4.view.ViewPager>
 
</RelativeLayout>
Вот класс который управляет ViewPager + TabLayout

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
public class DetailsTabLayoutPageProject {
 
    private ViewPager content_details_tabs_layout;
 
    private void init_tabs()
    {
 
    }
 
    DetailsTabLayoutPageProject(FragmentManager fragmentManager, View parent)
    {
        content_details_tabs_layout = (ViewPager) parent.findViewById(R.id.content_details_tabs_layout);
        AdapterFragmentTabs adapter = new AdapterFragmentTabs(fragmentManager);
        content_details_tabs_layout.setAdapter(adapter);
        TabLayout tab_layout_details_project = (TabLayout) parent.findViewById(R.id.tab_layout_details_project);
        tab_layout_details_project.setupWithViewPager(content_details_tabs_layout );
    }
 
    class AdapterFragmentTabs extends FragmentPagerAdapter {
        private String tabs[];
 
        public AdapterFragmentTabs(FragmentManager fm) {
            super(fm);
            tabs = new String[]{
                    "1 вклвдка",
                    "2 вклвдка",
                    "3 вклвдка",
                    "4 вклвдка",
                    "5 вклвдка",
            };
        }
 
        @Override
        public Fragment getItem(int position) {
            switch (position)
            {
                default:return MyExampleFragment.getInstance();
            }
        }
 
        @Override
        public CharSequence getPageTitle(int position) {
            //return super.getPageTitle(position);
            return  tabs[position];
        }
 
        @Override
        public int getCount() {
            return tabs.length;
            //return 0;
        }
    }
 
    static class MyExampleFragment extends Fragment{
        private static final int LAYOUT = R.layout.description_project_page_fragment;
        private View view;
 
        public static MyExampleFragment getInstance()
        {
            Bundle args = new Bundle();
            MyExampleFragment fragment = new MyExampleFragment();
            fragment.setArguments(args);
            return fragment;
        }
        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            view = inflater.inflate(LAYOUT, container, false);
            return view;
        }
    }
}
Подскажите пожалуйста, как заставить ViewPager отображаться в ScrollView.
Или возможно надо использовать другой контейнер вместо ScrollView.
Или предложите чем можно заменить связку ViewPager + TabLayout, но с таким же функционалом.
Или если у вас есть рабочий код в котором ViewPager отображается в ScrollView, то дайте пожалуйста на него ссылку, может смогу найти причину сравнивая код.
Ответ: Проблему то это не решит.
Вообще по тз(дизайну) надо много информации пролистать и потом дойти до этих вкладок.
ТО есть вкладки должны лежать в скроле, что бы до них можно было проскролить.
Вопрос: Изменение цвета текста на кнопках-заголовках TabLayout

Разметка у меня такая:
XML
1
2
3
4
5
6
7
8
9
    <android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabMode="scrollable" />
 
 
    <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
Использую так:
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
public class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {
 
    MyFragment[] fragments;
 
    public MyFragmentPagerAdapter(FragmentManager fm, MyFragment[] fragments) {
        super(fm);
        //.........
    }
 
    @Override
    public Fragment getItem(int position) {
        return fragments[position];
    }
 
    @Override
    public int getCount() {
        return fragments.length;
    }
 
    @Override
    public CharSequence getPageTitle(int position) {
        return String.valueOf(position + 1);
    }
}
Java
1
2
3
tabLayout.setupWithViewPager(viewPager);
        MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(getFragmentManager(), data);
        viewPager.setAdapter(adapter);
Хотел, чтобы событие, возникающее на страничке viewPager меняло цвет заголовка выбранной странички.
Подскажите пожалуйста, как это сделать. Спасибо
Ответ: Спасибо, но нашел простой способ!
tabLayout.getTabAt(position) - отдаёт TabLayout.Tab, а это уже нужная мне View, которую можно менять.
Вопрос: Как равномерно растянуть табы в TabLayout



Как равномерно растянуть табы? Они почему-то сдвинуты вправо

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
 
    <android.support.design.widget.TabLayout
        android:id="@+id/tabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabMode="scrollable"
        app:tabGravity="fill"/>
 
    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
 
</LinearLayout>
Ответ: Mazilo, может кто то будет страдать от такого же вопроса - озвучьте решение
Вопрос: Android Studio - Navigation Drawer Activity, многостраничное

Всем доброго времени суток)
Справедливости ради, хочу сказать, что я не сразу стал создавать тему, столкнувшись с проблемой. Два дня я искал по различным видеоурокам и сайтам ее решение, но безрезультатно( Поэтому прошу Вашей помощи, форумчане.

С Navigation Drawer Activity вроде все понятно. С фрагментами (пунктами навигации) тоже вроде ясно. Но у меня многостраничное приложение, поэтому столкнулся с проблемой. Если создавать новое Navigation Drawer Activity, то студия ругается, что мол меню навигации уже есть. Оно и логично.
А если приложение многостраничное, то как на каждой странице вставить меню? Создал Empty Activity, попробовал вставить меню (android.support.design.widget.NavigationView + include), но что-то не вышло. В app_bar_activity нужно include content_xxx. Это то есть, на всех страницах, где я захочу вставить меню, мне придется создавать по два активити на страницу? Просто активити и контент?

Может и вопрос глупый, и мое описание тоже, поэтому просто напишу суть: Как создать, n-страничное приложение, и чтобы на каждой странице было одно и то же меню?
Ответ: Пробовал прописывать import android.support.v4.app.Fragment, не помогло

Добавлено через 1 час 44 минуты
Решил проблему. Надо было во фрагменте исправить import android.support.v4.app.Fragment; на import android.app.Fragment;
Вопрос: Ошибки android-support-v7 при создании нового проекта в Eclipse

Приветствую Вас, форумчане! Возникла такая проблема, как я понял довольно распространенная. Установил Eclipse Mars. При создании нового проекта Android Application вылезает куча ошибок, связанных с библиотекой android-support-v7. Глянул в Android SDK Manager, там Android Support Repository установлен.

Гугл советует подключить эту библиотеку в свойствах проекта и якобы проект с этой библиотекой создается автоматически. Но у меня ничего автоматически не создается и в свойствах проекта эту библиотеку подключить нельзя: ибо нету ее нифига в списке.
Прикладываю скрины проблемы.
Очень надеюсь на Вашу помощь! Спасибо.
Ответ: Lost_Angel, попробуйте вывернуться без нее (android-support-v7)
Вопрос: Правильное использование Material Design

Добрый день!

Как правильно использовать MAterial Design?
Android 4.0 - Android 5.0.x

Нормально ли использовать
android.support.v7.widget.* ?

Или лучше по другому?

Android studio
Ответ:
Сообщение от ILNAR_93
Нормально ли использовать
android.support.v7.widget.* ?
да, а чаще всего не можно, а нужно
Сообщение от ILNAR_93
Как правильно использовать MAterial Design?

и дальше по боковому меню