android-为什么自定义操作栏没有填充宽度

时间:2015-02-23 05:13:26

标签: android android-layout android-actionbar

这是我的自定义布局xml:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000"
    android:adjustViewBounds="true" 
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/weather"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/weather" />

    <ImageView
        android:id="@+id/like"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:src="@drawable/like" />

    <ImageView
        android:id="@+id/gps2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:src="@drawable/gps2" />

    <ImageView
        android:id="@+id/gps1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:src="@drawable/gps1" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:gravity="center_vertical|right"
        android:textSize="14sp"
        android:layout_weight="1"
        android:textColor="#fff"
        android:text="TextView" />

</LinearLayout>

这是我的动作栏java代码:

    ActionBar actionBar = getSupportActionBar();
        LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View mCustomView = layoutInflater.inflate(R.layout.actionbar, null);
actionBar.setCustomView(mCustomView);
        actionBar.setDisplayShowCustomEnabled(true);
        getSupportActionBar().setDisplayShowCustomEnabled(true);
         actionBar.setDisplayShowTitleEnabled(false);
         actionBar.setDisplayHomeAsUpEnabled(true);
         actionBar.setDisplayUseLogoEnabled(false);
         actionBar.setDisplayShowHomeEnabled(false);
         actionBar.setHomeButtonEnabled(true);
         actionBar.setIcon(null);

这是清单中的活动主题:

android:theme="@style/Theme.AppCompat.Light" 

结果如下:

enter image description here

如你所见,黑色布局并没有填满宽度,我不知道为什么。如何制作自定义操作栏以填充屏幕宽度?

3 个答案:

答案 0 :(得分:2)

在您的操作栏java代码中,替换

actionBar.setCustomView(mCustomView);

actionBar.setCustomView(mCustomView, new Toolbar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));

希望这对你有帮助。!

答案 1 :(得分:0)

尝试

android:layout_width="fill_parent"

并删除

android:adjustViewBounds="true"

我希望它会起作用

答案 2 :(得分:0)

只需将android:setcontentstartandroid:setcontentend设置为0dp