0

标题栏

我的自定义标题栏边缘出现黑色边框,这是我不想要的。任何想法都会很棒。这是标题栏的代码。

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="35sp"
android:gravity="center_vertical"
android:background="@color/TitleBlue">

<ImageView
    android:id="@+id/header"
    android:src="@drawable/app_icon_white"
    android:adjustViewBounds="true"
    android:layout_marginLeft="5sp"
    android:layout_marginBottom="1sp"
    android:padding="3sp"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"/>

<com.hdms.manager.Drawable.TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10sp"
    android:text="HDMS Manager"
    android:textColor="@android:color/white"
    android:textStyle="bold"/>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="right">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/circleIcon"
            android:src="@drawable/blank_circle"
            android:adjustViewBounds="true"
            android:layout_marginLeft="-8sp"
            android:padding="8sp"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"/>

        <com.hdms.manager.Drawable.TextView
            android:id="@+id/accessLevel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/circleIcon"
            android:layout_alignTop="@+id/circleIcon"
            android:layout_marginLeft="14sp"
            android:layout_marginTop="8sp"
            android:text=""
            android:textColor="@color/TitleBlue" />
    </RelativeLayout>

    <ImageView
        android:id="@+id/connectionModeIcon"
        android:src="@drawable/direct_on_lan"
        android:adjustViewBounds="true"
        android:layout_marginLeft="-8sp"
        android:padding="8sp"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"/>

    <ImageView
        android:id="@+id/connectedIcon"
        android:src="@drawable/tick_raw"
        android:adjustViewBounds="true"
        android:layout_marginLeft="-8sp"
        android:padding="8sp"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"/>

</LinearLayout>
</LinearLayout>

我正在使用自定义 TextView,以便我可以将自己的 TTF 加载到项目中。但这不是问题,因为正常 TextView 的边框仍然存在。

这是清单文件。

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

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

<uses-sdk
    android:minSdkVersion="12"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:name="App"
    android:theme="@style/AppTheme" >

    <!-- Splash screen -->
    <activity
        android:name="com.hdms.manager.Drawable.SplashScreen"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Black.NoTitleBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <!-- Main activity -->
    <activity
        android:name="com.hdms.manager.MainActivity"
        android:label="@string/app_name" >
    </activity>
</application>

</manifest>

以及来自styles.xml的相关代码

<!-- Application theme. -->
<style name="AppTheme" parent="android:Theme.Light">
    <item name="android:windowTitleSize">35sp</item>
    <item name="android:dropDownListViewStyle">@style/MyDropDownListView</item>
    <item name="android:buttonStyle">@style/My.Button</item>
</style>

来自 colors.xml 的颜色

<color name="TitleBlue">#008cb8</color>

如果颜色设置为黑色,则不会出现问题。

4

5 回答 5

0

如果你从来没有弄清楚这一点,我有同样的问题,但对我来说,它在较新的设备上工作正常,但在 API 10 上却不行,我用这个修复了它:

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="android:windowTitleSize">45dp</item>
    <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item>
    <item name="android:windowNoTitle">false</item>
</style>

<style name="WindowTitleBackground" />

重要的部分是 windowTitleBackgroundStyle。你放的样式可以是空的。我不知道为什么这有效,但它确实对我有用。

于 2013-12-09T10:23:58.990 回答
0

对于任何有兴趣的人。我通过在主题中声明没有标题栏并将标题栏添加到主要活动来解决这个问题;并使用带有片段的浏览器。这样“标题栏”总是可见的。

新样式文件

<style name="AppTheme" parent="android:Theme.Light.NoTitleBar">
     <item name="android:windowTitleSize">35sp</item>
     <item name="android:dropDownListViewStyle">@style/MyDropDownListView</item>
     <item name="android:buttonStyle">@style/My.Button</item>
 </style>

新的activity_main.xml

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

<include layout="@layout/titlebar"/>

<android.support.v4.view.ViewPager
    android:id="@+id/contentViewPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1" />

 </LinearLayout>

谢谢你们的努力。

于 2013-10-15T00:59:27.863 回答
0
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="horizontal"
  android:layout_width="fill_parent"
  android:layout_height="35sp"
  android:gravity="center_vertical"
  android:background="@color/TitleBlue"
  android:padding="0dp">

...
</LinearLayout>
于 2013-10-14T01:04:36.063 回答
0
// try this
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:gravity="center"
        android:layout_margin="5dp"
        android:layout_height="35dp">

    <ImageView
            android:id="@+id/header"
            android:src="@drawable/ic_launcher"
            android:adjustViewBounds="true"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"/>

    <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_marginLeft="5dp"
            android:gravity="center">
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="HDMS Manager"
                android:textColor="@android:color/white"
                android:textStyle="bold"/>

        <TextView
                android:id="@+id/accessLevel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Access Level"
                android:textColor="@android:color/white"
                android:textStyle="bold"
                android:layout_marginLeft="5dp"/>
    </LinearLayout>
    <ImageView
            android:id="@+id/circleIcon"
            android:src="@drawable/ic_launcher"
            android:adjustViewBounds="true"
            android:layout_width="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_height="match_parent"/>

    <ImageView
            android:id="@+id/connectionModeIcon"
            android:src="@drawable/ic_launcher"
            android:adjustViewBounds="true"
            android:layout_width="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_height="match_parent"/>

    <ImageView
            android:id="@+id/connectedIcon"
            android:src="@drawable/ic_launcher"
            android:adjustViewBounds="true"
            android:layout_width="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_height="match_parent"/>

</LinearLayout>
于 2013-10-11T06:59:06.313 回答
0

我不确定它是否有效。通过移除重力并将填充设置为 0sp 来尝试一下

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="horizontal"
  android:layout_width="match_parent"
  android:layout_height="35sp"
  android:background="@color/TitleBlue"
  android:padding="0dp">

...
</LinearLayout>
于 2013-10-14T02:17:51.220 回答