我有一个自定义标题栏(类似于操作栏)。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/bg_header">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ibSlider"
android:src="@drawable/ic_drawer"
android:background="@color/transparent"
android:layout_marginLeft="@dimen/side_margin"
android:contentDescription="@string/general_content_description"
android:layout_centerVertical="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/header_branding"
android:id="@+id/tvAppName"
android:layout_toRightOf="@+id/ibSlider"
android:gravity="center_vertical"
android:layout_marginLeft="@dimen/side_margin"
style="@style/branding_orange"/>
<ProgressBar
android:layout_width="20dp"
android:layout_height="20dp"
android:id="@+id/pbLoading"
android:layout_alignParentRight="true"
android:indeterminate="true"
android:layout_marginRight="@dimen/side_margin"
android:layout_centerVertical="true"/>
</RelativeLayout>
当我在我的活动中添加此自定义视图时,有一个填充权,我不知道来自哪里!我在视图中添加了绿色背景,以便找到我在谈论的地方。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<view
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/headerBar"
android:background="@color/green"
class="com.kamalan.widget.HeaderBar"/>
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/headerBar"/>
</RelativeLayout>
这是我的HeaderBar的代码。
public class HeaderBar extends RelativeLayout {
private static final String TAG = "HeaderBar";
private Context mContext;
private ProgressBar progressBar;
private ImageButton ibMenuSlider;
public HeaderBar(Context context) {
super(context);
this.mContext = context;
init();
}
public HeaderBar(Context context, AttributeSet attrs) {
super(context, attrs);
this.mContext = context;
init();
}
public HeaderBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.mContext = context;
init();
}
private void init() {
LayoutInflater mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout view = (RelativeLayout) mInflater.inflate(R.layout.widget_headerbar, null);
addView(view);
progressBar = (ProgressBar) view.findViewById(R.id.pbLoading);
ibMenuSlider = (ImageButton) view.findViewById(R.id.ibSlider);
}
...
}
图1显示了类标题(第一个xml代码)的预览,并在第二个图像添加到我的活动时显示。我不知道绿色填充来自哪里!任何想法将不胜感激。感谢。
答案 0 :(得分:0)
问题是我用作标题背景的图像。不知道为什么它适用于第一张图像但不适用于第二张图像。正如鲍勃在评论中所说,也许活动正在搞乱或主题有错误。
无论如何,我通过不使用图像修复了问题:)
对于其他人的参考,我改变了下面的xml标题,我可以用这种方式修复问题。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/header_bar_height"
android:background="@color/gray">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ibSlider"
android:src="@drawable/ic_drawer"
android:background="@color/transparent"
android:layout_marginLeft="@dimen/side_margin"
android:contentDescription="@string/general_content_description"
android:layout_centerVertical="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/header_branding"
android:id="@+id/tvAppName"
android:layout_toRightOf="@+id/ibSlider"
android:gravity="center_vertical"
android:layout_marginLeft="@dimen/side_margin"
style="@style/branding_orange"/>
<ProgressBar
android:layout_width="20dp"
android:layout_height="20dp"
android:id="@+id/pbLoading"
android:layout_alignParentRight="true"
android:indeterminate="true"
android:layout_marginRight="@dimen/side_margin"
android:layout_centerVertical="true"/>
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="@color/header_divider"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
答案 1 :(得分:0)
我也面临同样的问题但是当我尝试自定义Actionbar时我获得了成功。由于缺少drawable和字符串资源,我无法解决您的问题所以请提供这个的zip以便我可以直接看到....