Ale*_*voy 27 android window titlebar
我正在通过禁用标准版本并自行管理所有内容来为活动创建自定义标题.我想知道是否可以根据我的需要更换/主题标题.
我可以通过更改windowXYZStyle项目来自定义大小,背景图像和文本.
我唯一找不到的东西 - 我怎么能添加图像而不是文字.我已经尝试requestWindowFeature(Window.FEATURE_CUSTOM_TITLE)
并分配自定义布局 - 但它似乎不起作用.
编辑:这是测试建议的报告,代码如下 - 结果 - 图像视图没有显示.
活动
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
XML :
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:paddingLeft="5dip"
android:background="@drawable/titlebar_bg"
android:layout_gravity="left|center"
>
<ImageView
android:id="@+id/logo"
android:src="@drawable/title_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
Dan*_*Lew 35
可以设置自己的自定义标题布局,但执行顺序很重要.您必须按此顺序执行操作:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.my_layout);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_custom_title);
Run Code Online (Sandbox Code Playgroud)
此外,您可能需要增加标题的大小; 如果不这样做,那么您的自定义布局的底部可能会被您的活动覆盖.您可以通过添加指定标题大小的主题来更改大小.这将进入值XML文件:
<resources>
<style name="LargeTitleTheme">
<item name="android:windowTitleSize">40dip</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
然后,您需要在AndroidManifest.xml中为您的Activity(或应用程序,如果您希望整个应用程序具有此自定义标题栏)设置主题:
<activity android:name=".MyCustomTitleActivity" android:theme="@style/LargeTitleTheme" />
Run Code Online (Sandbox Code Playgroud)
你可以随时使用:
requestWindowFeature(Window.FEATURE_NO_TITLE);
Run Code Online (Sandbox Code Playgroud)
然后在Activity的视图中创建自己的标题栏.