更改操作栏的大小

时间:2013-10-30 10:27:10

标签: java android user-interface android-actionbar android-titlebar

请查看以下代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="vertical" >

     <TextView
         android:id="@+id/xxx_title"
         android:layout_width="310dp"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
         android:text="@string/xxx_title"
         android:textAppearance="?android:attr/textAppearanceLarge"
         android:textColor="#579bef"
         android:textSize="50sp" />

    <EditText
        android:id="@+id/search"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_gravity="right"
        android:layout_marginRight="30dp"
        android:ems="10"
        android:hint="@string/search_hint"
        android:layout_marginTop="10dp"
        android:textAppearance="?android:attr/textAppearanceSmall" />

</LinearLayout>

Home.java

import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.widget.TextView;

public class Home extends Activity {

    private TextView textView23;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

         setContentView(R.layout.activity_home);

        //Setting up the Action Bar
         ActionBar actionBar = getActionBar();  //to support lower version too
         actionBar.setDisplayShowHomeEnabled(false); // Remove icon
         actionBar.setDisplayShowTitleEnabled(false); // Remove title text
         actionBar.setDisplayShowCustomEnabled(true);
         View customView=getLayoutInflater().inflate(R.layout.window_title, null);
         actionBar.setCustomView(customView);
         actionBar.setBackgroundDrawable(new ColorDrawable(Color.WHITE));



        textView23 = (TextView)findViewById(R.id.textView23);
        textView23.setSelected(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.home, menu);
        return true;
    }

}

这是我的Action Bar的布局。我需要操作栏的高度与布局的内容高度相匹配,因此我尝试将android:layout_height="wrap_content"添加到布局中。但是,它没有改变任何东西。

如何更改操作栏的大小?

1 个答案:

答案 0 :(得分:1)

这是我在SO中找到的。您必须为ActionBar创建样式,然后将其添加到代码中。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="thin_ab" parent="android:Theme.Holo.Light">
        <item name="android:actionBarStyle" >@style/thin_ab_style</item>
    </style>

    <style name="thin_ab_style" parent="android:Widget.Holo.ActionBar">
        <item name="android:height">30dp</item>
    </style>
</resources>

然后在你的代码中添加:

mContentHeight = a.getLayoutDimension(R.styleable.ActionBar_height, 0);
顺便说一句,如果这可以解决您的问题,那么您的问题可能是重复的