标签: android-tabs

如何在android中设置屏幕底部的选项卡?

我正在搞制表演.

我想在tabcontent(framelayout)下面显示我的tabwidget.

我通过将tabwiget选项卡属性设置为来完成它

android:gravity="bottom"
Run Code Online (Sandbox Code Playgroud)

但是framelayout无法与这些标签对齐.

也就是说,标签显示在屏幕的底部并与framelayout重叠

怎么做?如果设置一个高度值到framelayout它没有针对android的所有屏幕进行优化.我能做什么?任何的想法???

android android-emulator android-layout android-tabs

7
推荐指数
1
解决办法
2万
查看次数

如何实现水平滚动标签?

我正在尝试实现此应用程序.目前我已经设计了标签,因为我有超过7个标签,它看起来太拥挤了.如何设计它以便tabwidget可以水平滚动.我在市场上的一些应用程序上看到了这个设计,但没有任何线索如何在我的应用程序中实现这一点.

我看到的一个应用程序有一个水平滚动视图,它自己滚动,当你按下特定的图像/按钮时,它会显示一些内容.它似乎不是我猜的标签.

那么有人对此有所了解吗?

android horizontalscrollview tabwidget android-tabhost android-tabs

7
推荐指数
2
解决办法
3万
查看次数

Actionbar Sherlock - 滑动时标签不会改变横向

我有一个使用ViewPager + actionbar Sherlock标签的屏幕.我setOnPageChangeListener在寻呼机上有一个设置,它执行以下操作:

@Override
public void onPageSelected(final int position) {
    actionBar.setSelectedNavigationItem(position);
}
Run Code Online (Sandbox Code Playgroud)

如果我只有很少的标签并显示所有标签,这在纵向模式下甚至在风景中都可以正常工作.但是,如果我在横向中添加更多选项卡,则会将这些选项卡折叠为单个下拉窗口小部件.当我浏览ViewPager时,该setSelectedNavigationItem方法被执行,但现在它对下拉选择没有影响:它保持在最后选择的值.这是非常糟糕的,因为用户缺少视觉线索:标签可能会说"一个",但用户已经在第6页.

有没有办法以编程方式更改根据位置显示哪个选项卡?

PS我知道为什么会发生这种情况:这是来自com.android.internal.app.ActionBarImpl的代码:

public void setSelectedNavigationItem(int position) {
    switch (mActionView.getNavigationMode()) {
    case NAVIGATION_MODE_TABS:
        selectTab(mTabs.get(position));
        break;
    case NAVIGATION_MODE_LIST:
        mActionView.setDropdownSelectedPosition(position);
        break;
    default:
        throw new IllegalStateException(
                "setSelectedNavigationIndex not valid for current navigation mode");
    }
}
Run Code Online (Sandbox Code Playgroud)

当我单步执行时,我可以看到导航模式仍然是NAVIGATION_MODE_TABS,尽管标签显示为列表.现在 - 我的膝盖反射是将代码放入onConfigurationChanged以适当地设置导航模式,但这不应该自动发生吗?

PPS并且已经提交了包含补丁的Android错误

android landscape android-viewpager actionbarsherlock android-tabs

7
推荐指数
1
解决办法
2842
查看次数

屏幕底部的Android操作栏标签

我同意任何想要制作标签应位于屏幕顶部的论点的人,但我无法控制我的应用程序的要求:).我必须在屏幕底部构建一个带标签的应用程序.我正在使用SDK 14和Actionbars.这甚至可能吗?我已经使用底部的选项卡构建了一个布局,但是当我将选项卡添加到ActionBar时,它们会自动呈现在屏幕顶部.

任何想法都会非常感激,谢谢大家花时间阅读这篇文章.

android android-actionbar android-tabs

7
推荐指数
1
解决办法
2542
查看次数

Android操作栏将宽度设置为选项卡

目前我正忙着为我的公司制作一个WHMCS应用程序.作为导航,我想在操作栏中使用Tab功能.

但是,如何编辑选项卡的宽度?我需要在一个屏幕上一起使用5而无需滚动.我已经尝试过这样的一些样式:

<style name="AppBaseTheme" parent="android:Theme.Light">
</style>

<style name="AppTheme" parent="AppBaseTheme">
    <item name="@android:attr/actionBarTabStyle">@style/tab_nav</item>
    <item name="android:actionBarTabTextStyle">@style/actionBarTabTextStyle</item>
</style>

<style name="actionBarTabTextStyle" parent="android:Widget.Holo.Light.ActionBar.TabText.Inverse">
    <item name="android:padding">1dp</item>
</style>

<style name="tab_nav" parent="android:style/Widget.Holo.Light.Tab">
 <item name="android:paddingLeft">-25dp</item>
</style> 

<style name="CustomTabTextStyle" parent="@android:style/TextAppearance.Holo">
    <item name="android:textColor">#2456c2</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但是,当使用较高的负值时,宽度不会是虾.

android android-actionbar android-tabs

7
推荐指数
1
解决办法
7129
查看次数

Android:ActionBar,TabListener和support.v4.Fragment

我正在构建一个MainActivity扩展的应用程序,FragmentActivity并有一个带有三个选项卡的ActionBar.在每个标签我想附加一个ParentFragment应该控制内部页面之间的滑动.结果应该是按下标签,用户应该从不同的实例ParentFragment和滑动中更改,他应该TextViewFragments在每个内部之间进行更改ParentFragment.
现在我可以在三个选项卡中切换完美,但问题是,ParentFragment没有正确显示,好像它甚至没有创建,因为我甚至不能看到onCreate(),onCreateView()onViewCreated()在logcat的视图功能.
我认为问题在于自定义TabListener类及其功能,但我无法真正理解问题所在.我试图在很多网站上搜索,我已经查看了很多例子,但没有一个与相同的情况有关.
我错过了什么或我在这里做错了什么?

这是我的MainActivity:

    import java.util.Random;
    import android.app.ActionBar;
    import android.app.ActionBar.Tab;
    import android.graphics.drawable.Drawable;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.FragmentTransaction;
    import android.support.v4.view.ViewPager;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.TextView;
    import android.widget.Toast;
    import com.viewpagerindicator.PageIndicator;

public class MainActivity extends FragmentActivity {

    MyAdapter mAdapter;
    ViewPager mPager;
    PageIndicator mIndicator;    
    private View mCustomView; 
    private static final Random …
Run Code Online (Sandbox Code Playgroud)

android-fragments android-actionbar android-tabs

7
推荐指数
1
解决办法
9578
查看次数

滑动选项卡布局文本是大写的

嗨,我在我的应用程序中使用滑动选项卡布局,这一切都很好.我唯一不理解的是为什么我的标签文本是大写的.

我打印了选项卡在滑动选项卡类中的文本,它们不是大写的.我环顾四周,没有调用toUpperCase方法.

以下是设置文本的类中的代码:

  private void populateTabStrip() {
        final PagerAdapter adapter = mViewPager.getAdapter();
        final View.OnClickListener tabClickListener = new TabClickListener();

        for (int i = 0; i < adapter.getCount(); i++) {
            View tabView = null;
            TextView tabTitleView = null;

            if (mTabViewLayoutId != 0) {
                // If there is a custom tab view layout id set, try and inflate it
                tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip,
                        false);
                tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId);
            }

            if (tabView == null) {
                tabView = createDefaultTabView(getContext());
            }

            if (tabTitleView == null && …
Run Code Online (Sandbox Code Playgroud)

android android-tabs

7
推荐指数
2
解决办法
7930
查看次数

Android TabLayout没有重新加载片段

我注意到TabLayout它只Fragments需要显示一次,所以当我替换Fragment包含TabLayout并切换回它时,它不会重新创建Fragments它保持,因此它们不再显示任何内容.是这样的设计还是我做错了什么?我Fragment在a中使用外部NavigationDrawer,当用户切换到另一个Fragment并返回时,该选项卡Fragments为空,因为它们不会被重新创建.我还注意到在切换回包含它们的片段后,Tabs的行为非常奇怪(它们在跳跃下面的白线,你可以在两个标签之间保持它而不触摸屏幕)

我正在使用的代码:

public class Fragment1 extends Fragment {
    private static ViewPager viewPager;
    private static TabLayout tabLayout;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Utils.changeLanguage(getActivity());

        final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.LinesOverlay);

        LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);

        View view = localInflater.inflate(R.layout.fragment1, container, false);
        viewPager = (ViewPager) view.findViewById(R.id.viewpager);
        tabLayout = (TabLayout) view.findViewById(R.id.tabs);

        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-tabs navigation-drawer androiddesignsupport

7
推荐指数
1
解决办法
1763
查看次数

如何在TabLayout中获取Tab的视图?

我想在TabLayout中找到Tab的视图,以便我可以将它传递给另一个函数.我不确定如何找到视图. myTabLayout.getTabAt(0).getCustomView()返回null.

我如何获得视图?

TabLayout tabLayout = (TabLayout) rootView.findViewById(R.id.tab_layout_main);
tabLayout.addTab(tabLayout.newTab().setText("Page1"));
tabLayout.addTab(tabLayout.newTab().setText("Page2"));

viewPager = (ViewPager) rootView.findViewById(R.id.pager_main);
pagerAdapter = new MyPagerAdapter(getActivity(), getChildFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(pagerAdapter);
Run Code Online (Sandbox Code Playgroud)

android android-layout android-tabs android-tablayout

7
推荐指数
1
解决办法
2万
查看次数

Android:如何在一个Vector Drawable xml中使用选择器更改android:fillcolor

选项卡图标:我当前的方法是创建两个文件(ic_list_selected_24dp.xml和ic_list_unselected_24dp.xml;它们基本相同但只是android:fillColor='Color HEX CODE'不同),然后创建一个选择器(selector_tabitem_list.xml)来更改状态时的可绘制颜色改变了.

// @drawable/selector_tabitem_list.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:drawable="@drawable/ic_list_selected_24dp" 
        android:state_selected="true" />
    <item android:drawable="@drawable/ic_list_unselected_24dp" 
        android:state_selected="false" />
</selector>
Run Code Online (Sandbox Code Playgroud)

它有点复制,因为两个drawable是相同的.

选择器不能用于矢量drawable.

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
    <path
        android:fillColor="@drawable/selector"
        android:pathData="M19,3...."
</vector>
Run Code Online (Sandbox Code Playgroud)

-

// @drawable/selector

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true">
        <color android:color="@color/itemSelected" />
    </item>
    <item android:state_selected="false">
        <color android:color="@color/itemUnselected" />
    </item>
</selector>
Run Code Online (Sandbox Code Playgroud)

,android:fillColor="@color/state"或者.

// @color/state

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@android:color/white" android:state_selected="true" />
    <item android:color="@android:color/black" android:state_selected="false" />
</selector>
Run Code Online (Sandbox Code Playgroud)

有没有办法使用一个drawable并动态更改其颜色?使用硬十六进制代码更好?

谢谢.

android android-tabs android-selector android-tablayout android-vectordrawable

7
推荐指数
1
解决办法
3522
查看次数