Intereting Posts
Как создать изогнутую полосу прокрутки в android wear 2.0? Каковы причины, по которым GCM ID недоступен в некоторых случаях в android Переключение между API Google Android API v2 DEBUG и ключ RELEASE API Оптимизация и удобство использования Long ListView Как получить текущую временную метку сервера Firebase за миллисекунды? Отображать непрерывный индикатор выполнения в уведомлении, андроид? В Android есть Task == Application? FirebaseRecyclerAdapter не обновляет индексы элементов при удалении данных Как написать собственное контекстное меню для копирования и вставки? Сохранять состояние мягкого ввода / IME при изменении ориентации Причина «Это приложение содержит код, который пытается обойти защиту безопасности Android» Facebook SDK 4.0.1 Вход без кнопки входа Как добавить действия в верхнюю часть раскола ActionBar Динамическое изменение цвета (Элемент списка) TextView в Listview Java.lang.NoSuchMethodError: android.app.Notification $ Builder.addAction

Добавить изображение на 3 вкладки

Как добавить изображения в вкладку? В настоящее время я могу переместить вкладку вниз, но не знаю, как изменить LL Tab1 , LL Tab2 , LL Tab3 на значок. Я на правильном пути? Любая помощь будет принята с благодарностью.

Xml-код

 <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="5dp" > <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" android:layout_weight="1" > <LinearLayout android:id="@+id/ll_tab1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" /> <LinearLayout android:id="@+id/ll_tab2" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" /> <LinearLayout android:id="@+id/ll_tab3" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" /> </FrameLayout> <TabWidget android:id="@android:id/tabs" android:background="@color/light_gray" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0"/> </LinearLayout> </TabHost> 

Введите описание изображения здесь

Кто-нибудь может помочь? Большое спасибо !

    Попробуйте использовать TabLayout из библиотеки поддержки дизайна Android, чтобы соответствовать рекомендациям по разработке материалов для вкладок .

    В TabLayout библиотеки TabLayout реализованы обе фиксированные вкладки, где ширина представления разделяется поровну между всеми вкладками, а также прокручиваемыми вкладками, где вкладки не являются одинаковым размером и могут прокручиваться по горизонтали.

    Чтобы реализовать TabLayout проверьте это руководство и как добавить значок для вкладок с помощью setIcon для установки значков на вкладки с помощью setIcon .

     final int[] ICONS = new int[]{ R.drawable.ic_action_document, R.drawable.ic_action_tick, R.drawable.ic_action_trash}; .... TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(mViewPager); tabLayout.getTabAt(0).setIcon(ICONS[0]); tabLayout.getTabAt(1).setIcon(ICONS[1]); tabLayout.getTabAt(2).setIcon(ICONS[2]); 

    Чтобы установить вкладки внизу в TabLayout – Как установить вкладки внизу и скрыть верхнюю панель действий? Где вы поместите TabLayout в relativeLayout и выровняете его с родительским дном:

     <android.support.design.widget.TabLayout android:id="@+id/tab_layout" app:tabMode="fixed" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:elevation="6dp" app:tabTextColor="#d3d3d3" app:tabSelectedTextColor="#ffffff" app:tabIndicatorColor="#ff00ff" android:minHeight="?attr/actionBarSize" android:layout_alignParentBottom="true" /> 

    Хотя вы можете поместить макет вкладки внизу, постарайтесь не использовать нижние панели вкладок, если это возможно, согласно руководству Pure Android .

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

     import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private Toolbar toolbar; private TabLayout tabLayout; private ViewPager viewPager; private int[] tabIcons = { R.drawable.ic_tab_favourite, R.drawable.ic_tab_call, R.drawable.ic_tab_contacts }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); viewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(viewPager); tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); setupTabIcons(); } private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); } private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new OneFragment(), "ONE"); adapter.addFragment(new TwoFragment(), "TWO"); adapter.addFragment(new ThreeFragment(), "THREE"); viewPager.setAdapter(adapter); } class ViewPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public ViewPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFragment(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } } 

    Макет для вкладки activity_main.xml

     <android.support.design.widget.CoordinatorLayout 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.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="fixed" app:tabGravity="fill"/> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> 

    Фрагменты (класс), используемые на этой вкладке

     import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class OneFragment extends Fragment{ public OneFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_one, container, false); } } 

    Файл Xml fragment_one.xml

     <RelativeLayout 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" tools:context=".fragments.OneFragment"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/one" android:textSize="40dp" android:textStyle="bold" android:layout_centerInParent="true"/> </RelativeLayout> 

    TwoFragment.java

     import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class TwoFragment extends Fragment{ public TwoFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_two, container, false); } } 

    fragment_two.xml

     <RelativeLayout 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" tools:context=".fragments.TwoFragment"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/one" android:textSize="40dp" android:textStyle="bold" android:layout_centerInParent="true"/> </RelativeLayout> 

    Вы можете создать третий класс фрагмента и макет, как я сделал выше.

    Запустить его. Надеюсь, это сработает

    Попробуй это,

    Puth this activity_main.xml и установите пользовательскую высоту в TabLayout.

     <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="@dimen/custom_tab_layout_height" app:tabMode="fixed" app:tabGravity="fill"/> 

    Создайте раскладку xml с именем custom_tab.xml под res ⇒ layout. В этом макете мы определили пользовательский вид вкладки.

     <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tab" android:textColor="@color/colorAccent" android:textSize="@dimen/tab_label" android:fontFamily="@string/font_fontFamily_medium"/> 

    Откройте MainActivity.java и измените код, как показано ниже. Здесь, если вы наблюдаете метод setupTabIcons (), я отобразил макет custom_tab.xml на каждой вкладке, используя нижеследующие строки кода.

     TextView tabOne = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null); tabOne.setText("ONE"); tabOne.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_tab_favourite, 0, 0); tabLayout.getTabAt(0).setCustomView(tabOne); TextView tabTwo = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null); tabTwo.setText("TWO"); tabTwo.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_tab_call, 0, 0); tabLayout.getTabAt(1).setCustomView(tabTwo); TextView tabThree = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null); tabThree.setText("THREE"); tabThree.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_tab_contacts, 0, 0); tabLayout.getTabAt(2).setCustomView(tabThree); 

    Попробуйте это, действительно интересно. Должно быть решение

    http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/

    Ну, вы можете либо поместить ImageView в Linearlayout, что и на каждую вкладку, либо вы можете установить в качестве фона для LinearLayout. Если ваше изображение будет действовать фон, то вы, очевидно, захотите добавить это изображение в качестве фона, а не добавлять ImageView в качестве ребенка в LinearLayout. Если это будет контентом, а не фоном, вы должны добавить ImageView в каждый LinearLayout, как если бы вы добавили дочерний объект любого другого типа в родительский вид.