我为ActionBar创建了一个自定义视图,但它没有填满整个操作栏! 这是结果:
这是我的操作栏布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/actionbar_background">
<TextView
android:text="SOOPAC"
android:textAppearance="?android:attr/textAppearanceInverse"
android:layout_alignParentLeft="true"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:gravity="center_vertical"
android:paddingLeft="15dp"/>
<LinearLayout
android:layout_width="35dp"
android:layout_height="match_parent"
android:weightSum="4"
android:orientation="vertical"
android:layout_alignParentRight="true">
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.8"/>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.2"
android:background="@android:color/white"/>
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.8"/>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.2"
android:background="@android:color/white"/>
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.8"/>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.2"
android:background="@android:color/white"/>
</LinearLayout>
</RelativeLayout>
这是我的活动类:
import android.support.v7.app.ActionBarActivity;
import android.view.View;
public class ActivityMain extends ActionBarActivity {
ViewPager viewPager;
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
setContentView(R.layout.activity_main);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setCustomView(R.layout.actionbar_layout);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setHomeButtonEnabled(false);
actionBar.setStackedBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.actionbar_tabs_background)));
actionBar.setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
View homeIcon = findViewById(android.R.id.home);
// Hides the View (and so the icon)
if (homeIcon != null)
((View) homeIcon.getParent()).setVisibility(View.GONE);
overridePendingTransition(0, 0);
}
}
这是我的活动观点:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"></LinearLayout>
<!-- The navigation drawer -->
<ListView
android:id="@+id/listView_right_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="right"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="@color/navigation_drawer_background"/>
</android.support.v4.widget.DrawerLayout>
我在动作栏中禁用了所有内容,但它并没有消失。
的被修改
我设置LayoutParams
Math_Parent
宽度和高度......仍然有同样的问题
答案 0 :(得分:0)
在操作栏中尝试此操作
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
actionBar.setCustomView(R.layout.actionbar_layout,lp);
答案 1 :(得分:0)
首先你需要检查一下:
styles.xml 文件:
<resources>
<!-- Base application theme. -->
<style name="CustomActionBarTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar" parent="Widget.AppCompat.ActionBar">
<item name="android:windowBackground">@color/sapient_heat</item>
<item name="background">@color/red</item>
</style>
这不是一个完美的解决方案,但有机会解决。