标签: android-tabs

带有导航标签的ActionBar会根据屏幕方向更改高度

我的目标是增加ActionBar纵向模式的高度.我目前订

机器人:actionBarSize

在我的Themes.xml中.

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="DayTheme" parent="android:style/Theme.Holo.Light">
        <item name="android:actionBarSize">@dimen/actionBarHeight</item>
        <item name="android:actionBarTabTextStyle">@style/tab_indicator_text_dark</item>
    </style>
    <style name="NightTheme" parent="android:style/Theme.Holo">
        <item name="android:actionBarSize">@dimen/actionBarHeight</item>
        <item name="android:actionBarTabTextStyle">@style/tab_indicator_text_light</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

我在横向模式下获得了所需的效果,我将ActionBar高度增加到80dp.

在此输入图像描述

然而,我将屏幕旋转为纵向模式,高度变化如此.

在此输入图像描述

注意我在代码中进行以下调用.

final ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.setDisplayShowTitleEnabled(false);
bar.setDisplayShowHomeEnabled(false);
Run Code Online (Sandbox Code Playgroud)

我正在开发一个带有android 4.2的Nexus 7.

如何在横向模式下以纵向模式获得相同的80dp高度?

android android-actionbar android-tabs nexus-7

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

如何获取已选择的片段

我正在使用片段创建一个标签应用程序.

我已经成功创建了选项卡,但现在我需要在选择特定片段时创建一个对象.例如,当我选择时,SettingsTab我需要调用一个定义的函数Test class.同样毁灭

// SettingsTab
package com.example.sensorspositioningn;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class SettingsTab extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.settingstab, container, false);

    }
}
Run Code Online (Sandbox Code Playgroud)

这是mainActivity中的代码:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        appContext = getApplicationContext();

        //ActionBar
        ActionBar actionbar = getActionBar();
        actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        ActionBar.Tab Tab1= actionbar.newTab().setText("Tab1");
        ActionBar.Tab Tab2= actionbar.newTab().setText("Tab2");
        ActionBar.Tab Tab3= actionbar.newTab().setText("Tab3");
        ActionBar.Tab SettingsTab = actionbar.newTab().setText("Settings");

        Fragment …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-tabs

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

如何设置android的操作栏选项卡的高度

基本上,我想改变动作栏中标签的高度.在stackoverflow上已多次询问此问题,例如:

ActionBar标签高度

我已经尝试了大多数解决方案,但没有任何效果,这是我的代码.

    <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo">
    <item name="android:scrollHorizontally">false</item>
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">0dp</item>
    <item name="android:actionBarSize">80dp</item>
    <item name="actionBarSize">80dp</item>
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle</item>
</style>

<style name="ActionBarTabStyle" parent="@android:style/Widget.Holo.ActionBar.TabView">
    <item name="android:height">80dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

显然,代码只会改变操作栏高度,而不是我想要的标签栏高度.这是图片供参考:

在此输入图像描述 在此输入图像描述

如您所见,底部的操作栏更高.但在操作栏模式下,标签高度保持不变.

为什么会这样?我错过了什么???先感谢您 :).

解决了,如:

带有导航标签的ActionBar会根据屏幕方向更改高度

https://code.google.com/p/android/issues/detail?id=41792

显然这是一个来自android sdk的bug ...从来没有遇到过像这样的bug :(.希望这有助于其他人.

android android-layout android-fragments android-tabs android-styles

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

在Android设计库中使用TabLayout的图标选项卡

我正在尝试在Android设计库中使用新的TabLayout创建仅带图标的应用栏.

像这样: 在此输入图像描述

如何使用新的TabLayout Android设计库来完成它.

有一个简单的解决方案,或者我必须只使用setCustomView.我试图避免使用它.因为我没有得到像上图这样的图标的色调颜色.

我试着像这样写:

tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_dashboard))
Run Code Online (Sandbox Code Playgroud)

但是当我选择标签时,图标仍然保持相同的颜色

android android-tabhost android-tabs android-design-library

10
推荐指数
2
解决办法
4805
查看次数

android中心对齐tablayout中的选定选项卡

我正在使用android支持设计tablayout.这是我的代码:

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content""
        app:tabGravity="center"
        app:tabMode="scrollable"
        />

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
Run Code Online (Sandbox Code Playgroud)

我的问题是标签总是左对齐.但是,我想将选定的选项卡居中(即使在开头,第一个(选定的)选项卡也应居中).有没有办法做到这一点?谢谢.

center-align android-viewpager android-tabs android-tablayout

10
推荐指数
3
解决办法
8233
查看次数

带选项卡的活动对话框

我正在构建选项卡的应用程序.

  1. 点击按钮我试图用主题显示活动(说A)@android:style/Theme.Dialog
  2. 内部活动A我正在创建操作栏并添加4个选项卡.
  3. 点击标签我想改变片段.

一切正常,直到我不应用主题@android:style/Theme.Dialog 后应用主题我得到例外:

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ebuilder/com.ebuilder.views.MyTabActivity}: java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

在以下行:

actionBar.addTab(actionBar.newTab().setCustomView(R.layout.tab_home).
                    setTabListener(homeListener), 0);
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

1.如果我应用主题对话框会出现什么问题?

我的做法是对的吗?

如果有人知道另一种方法,请告诉我.

Edit1: *清单文件*

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.vivek"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk  android:targetSdkVersion="14"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".FragmentInsideFragmentTestActivity"
            android:label="@string/app_name"
            android:theme="@style/Theme.CustomDialog" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

RES /值/ style.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.CustomDialog" parent="android:style/Theme.Dialog">
            <item name="android:windowNoTitle">false</item>
            <item name="android:windowActionBar">true</item>        
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

EDIT2

05-03 …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar android-tabs

9
推荐指数
1
解决办法
3153
查看次数

操作栏选项卡未填充选项卡栏

经过几个小时的尝试,我终于找到了一种方法,可以将动作栏标签栏与动作栏分开. 如果没有空间,操作栏将标签转换为列出导航 但是现在还有一个问题.选项卡未填充标签栏. 在此输入图像描述

编辑 选项卡通过以下方式添加到操作栏:ActionBar.Tab relatieTab = actionBar.newTab().setText("Relaties"); actionBar.addTab(relatieTab);

android actionbarsherlock android-tabs

9
推荐指数
1
解决办法
4591
查看次数

Android ActionBar:动态显示/隐藏标签?

是否可以动态删除/恢复操作栏中的标签栏?

到目前为止,我通过更改操作栏的导航模式来完成此操作.我使用以下代码删除和恢复标签栏:

@Override 
public void restoreTabs() {     
    getSupportActionBar()
    .setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    this.supportInvalidateOptionsMenu();
}

@Override
public void removeTabs() {      
    getSupportActionBar()
    .setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
    this.supportInvalidateOptionsMenu();
}
Run Code Online (Sandbox Code Playgroud)

这是有效的,但是有一个很大的问题:我每次调用setNavigationModeonTabSelected都会调用,TabListener并且会重新创建当前的opend选项卡.

android actionbarsherlock android-actionbar android-tabs

9
推荐指数
1
解决办法
8629
查看次数

TabHost中的Horizo​​ntalScrollView在末尾添加额外的空间

为了在片段之间轻松切换,我将Horizo​​ntalScrollView嵌入到我的Tab布局中,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <HorizontalScrollView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:scrollbars="none" >

            <TabWidget android:id="@android:id/tabs" 
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content">
            </TabWidget>
        </HorizontalScrollView>
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
</TabHost>
Run Code Online (Sandbox Code Playgroud)

但是在我的代码中添加Fragments(如下所示)之后,在Horizo​​ntalScrollView的末尾会突然显示一些额外的空格:

滚动之前

滚动之前

滚动后

滚动后

代码非常复杂,但我会尝试展示重要的部分.

{
    mTabHost = (TabHost) childLayout.findViewById(android.R.id.tabhost);
    mTabHost.setup();
    FrameLayout tabsFL = (FrameLayout) childLayout.findViewById(android.R.id.tabcontent);
    tabsFL.setId(TABS_FRAME_ID);

    for (int i = 0; i < list.size(); i++) {
        mTabHost.addTab(newTab(String.valueOf(i), list.get(i).getTitle(), tabsFL.getId()));
    }

    mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
        @Override
        public void onTabChanged(String tabId) {
        updateTab(tabId, Integer.parseInt(tabId), list);
        }
    });

    //manually load first fragment …
Run Code Online (Sandbox Code Playgroud)

android horizontalscrollview android-fragments android-tabs

9
推荐指数
1
解决办法
2731
查看次数

在v4 ViewPager上更改颜色TabSelector

是否可以在v4 ViewPager上更改所选标签的颜色?
我需要使用v4 ViewPager,但我没有找到任何来源来定制它.
只是为了澄清我需要将蓝色改为另一种颜色:

TabSelector

android android-custom-view android-viewpager android-tabs

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