【问题标题】:Is it possible to make ActionBar tabs height higher than ActionBar height? If so, how?是否可以使 ActionBar 选项卡的高度高于 ActionBar 的高度?如果是这样,怎么做?
【发布时间】:2012-05-21 08:48:19
【问题描述】:

我正在使用 ActionBarSherlock

在关于 ActionBar 选项卡高度的类似问题中,我使用了:

<style name="YourTheme" parent="@android:style/Theme.Holo">
   <item name="android:actionBarStyle">@style/blah1</item>
   <item name="android:actionBarTabStyle">@style/blah2</item>
   <item name="android:actionBarSize">80dp</item>
   ..
</style>

我假设我可以在每种样式上使用这个特定属性

<item name="android:actionBarSize">80dp</item>

并从 ActionBar 选项卡高度单独调整 ActionBar 高度。

但它不起作用。

那么,这是我无法覆盖的 Android 设计原则吗?

选项卡必须始终与 ActionBar 高度相同。

【问题讨论】:

    标签: android android-layout actionbarsherlock android-actionbar


    【解决方案1】:

    我对此不是 100% 的,但根据我的经验,这是无法做到的,android 不允许这样做。也许这会在未来发生变化,但目前对此无能为力。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      您是否尝试过使用自定义操作栏?您可以使用单独的布局完全自定义操作栏。

      sample 将向您展示如何操作。

      【讨论】:

        【解决方案3】:

        你可以覆盖android的action bar设计原则,我试过了,可能对你有用。

        将以下代码复制到styles.xml文件中

        <style name="ThemeSelector" parent="@android:style/Theme.Holo.Light">
            <item name="android:actionBarStyle">@style/myTheme.ActionBar</item>
        </style>
        
        <style name="myTheme.ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
            <item name="android:background">imageforactionbar</item>
            <item name="android:titleTextStyle">@style/myTheme.ActionBar.Text</item>
            <item name="android:height">60dp</item>
        </style>
        

        1) 将图片放在drawable文件夹中

        2) 在样式 xml 中写入样式主题“myTheme.ActionBar.Text”。

        <style name="myTheme.ActionBar.Text" parent="@android:style/TextAppearance">
            <item name="android:textColor">@color/white</item>
            <item name="android:textSize">@dimen/app_head</item>
        </style>
        

        相应地更改清单文件,包括

        android:theme="@style/ThemeSelector" 
        

        在应用标签下。

        【讨论】:

          【解决方案4】:

          您可以覆盖操作栏

          getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.action_bar);

          android:layout_width="@dimen/action_BarWidth"
          android:layout_height="@dimen/action_BarHeight"
          

          【讨论】:

            【解决方案5】:

            不,您不能在 ICS 上更改本机操作栏的大小。原生操作栏的高度始终为 48dip(portrait) 或 40dip(landscape)。

            但是如果你坚持改变它的高度,你可以实现你自己的动作栏。

            【讨论】:

              【解决方案6】:

              我们可以从 java 类中的代码或主题中动态创建操作栏:

              第 1 步:我们可以更改特定类的操作栏的图像、名称、颜色、高度等,这是一个过程。

                  ActionBar actionBar = getActionBar();
                 // show the action bar title
                  actionBar.setDisplayShowTitleEnabled(true);
                  LayoutParams test = new LayoutParams(LayoutParams.WRAP_CONTENT,
                          LayoutParams.WRAP_CONTENT, Gravity.CENTER | Gravity.CENTER);
                  View actionBarView = LayoutInflater.from(this).inflate(
                          R.layout.x, null); // layout which contains your
                                                          // button.
                  actionBar.setCustomView(actionBarView, test);
                  actionBar.setDisplayShowCustomEnabled(true);
              
                  SpannableString s = new SpannableString("Test");
                  s.setSpan(new ForegroundColorSpan(Color.parseColor("#ffffff")), 0,
                          s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
              
                  // Update the action bar title with the TypefaceSpan instance
                  actionBar.setTitle(s);
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-03-13
                相关资源
                最近更新 更多