Пользовательский заголовок имеет нежелательную черную рамку
Я получаю черную рамку по краю моей пользовательской строки заголовка, которая мне не нужна. Любые идеи будут великолепны. Вот код для строки заголовка.
<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>
Проблема не видна, если цвет установлен на черный.
5 ответов
Для всех, кто заинтересован. Я обошел это, объявив не заголовок в теме и добавив заголовок в основной деятельности; и используя просмотр с фрагментами. Так что "строка заголовка" всегда видна.
Файл нового стиля
<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>
Спасибо за усилия, ребята.
// 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>
Если вы никогда не понимали этого, у меня была та же проблема, но со мной это работало нормально на новых устройствах, но на 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. И стиль, который вы используете, может быть пустым. Я понятия не имею, почему это работает, но это сработало для меня.
<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>
Я не уверен, что это работает или нет. Попробуйте его, убрав гравитацию и установив отступ 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>