【问题标题】:How to hide Title in `Theme.Sherlock.Dialog`?如何在“Theme.Sherlock.Dialog”中隐藏标题?
【发布时间】:2013-04-11 21:07:50
【问题描述】:

我的 DialogActivity 扩展自 SherlockFragmentActivity。所以我必须使用 Sherlock 主题。 在values-v14 我隐藏标题是这样的:

<style name="Theme.Sherlock.Dialog" parent="@android:style/Theme.Holo.Dialog">
    <item name="android:windowNoTitle">true</item>
</style>

如何在values文件夹中隐藏Theme.Sherlock.Dialog中的标题?

默认情况下它看起来像这样(github.com):

<style name="Theme.Sherlock.Dialog" parent="android:Theme">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowTitleStyle">@style/DialogWindowTitle.Sherlock</item>
    <item name="android:windowBackground">@drawable/abs__dialog_full_holo_dark</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>

    <item name="android:windowActionBar">false</item>
    <item name="android:windowActionModeOverlay">true</item>
    <item name="android:windowCloseOnTouchOutside">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:backgroundDimAmount">0.6</item>

    <item name="android:colorBackgroundCacheHint">@null</item>

    <item name="android:textColorPrimary">@color/abs__primary_text_holo_dark</item>
    <item name="android:textColorPrimaryInverse">@color/abs__primary_text_holo_light</item>

    <item name="windowMinWidthMajor">@dimen/abs__dialog_min_width_major</item>
    <item name="windowMinWidthMinor">@dimen/abs__dialog_min_width_minor</item>

    <item name="windowActionBar">false</item>
    <item name="windowContentOverlay">@null</item>
</style>

【问题讨论】:

  • 我相信 Sherlock 的所有主题配置都在android: 命名空间的之外。你能简单地试试&lt;item name="windowNoTitle"&gt;true&lt;/item&gt;
  • &lt;style name="Theme.Sherlock.Dialog" parent="android:Theme"&gt;&lt;item name="windowNoTitle"&gt;true&lt;/item&gt;&lt;/style&gt; - 给我一个错误:您必须使用 Theme.Sherlock、Theme.Sherlock.Light、Theme.Sherlock.Light.DarkActionBar 或衍生产品。
  • 应该是:&lt;style name="Theme.Sherlock.Dialog" parent="@android:style/Theme.Holo.Dialog"&gt; &lt;item name="android:windowNoTitle"&gt;true&lt;/item&gt;&lt;item name="windowNoTitle"&gt;true&lt;/item&gt; &lt;/style&gt;
  • 注意缺少一个android:
  • 它在 android 2.3.4 上给了我同样的错误 - 您必须使用 Theme.Sherlock、Theme.Sherlock.Light、Theme.Sherlock.Light.DarkActionBar 或衍生产品。

标签: android dialog styles actionbarsherlock


【解决方案1】:

解决方案: 我通过在https://github.com/JakeWharton/ActionBarSherlock/blob/master/library/res/layout/abs__dialog_title_holo.xml 中添加两行更改了abs__dialog_title_holo.xml

<com.actionbarsherlock.internal.widget.FakeDialogPhoneWindow xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:fitsSystemWindows="true">
<TextView android:id="@android:id/title" style="?android:attr/windowTitleStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minHeight="@dimen/abs__alert_dialog_title_height"
    android:visibility="gone" //******** FIRST ******** 
    android:paddingLeft="16dip"
    android:paddingRight="16dip"
    android:gravity="center_vertical|left" />
<View android:id="@+id/abs__titleDivider"
        android:layout_width="fill_parent"
        android:visibility="gone" //******** SECOND ********
        android:layout_height="2dip"
        android:background="@color/abs__holo_blue_light" />
<FrameLayout
    android:layout_width="match_parent" android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="vertical"
    android:foreground="?attr/windowContentOverlay">
    <FrameLayout android:id="@+id/abs__content"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
</FrameLayout>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多