0

請看看下面的代碼改變動作條的大小

<?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; 
    } 

} 

這是我的操作欄的佈局。我需要我的動作欄的高度與佈局的內容高度相匹配,所以我嘗試將android:layout_height="wrap_content"添加到佈局。但是,它沒有改變任何東西。

如何更改操作欄的大小?

+0

你想在運行時或改變大小的XML?您是否在LinearLayout上嘗試使用android:layout_height =「30dp」? – JJ86

+0

@JaAd:XML或代碼,沒問題 –

+0

在你的xml中,你可以改變android:layout_height =「wrap_content」爲android:layout_height =「30dp」;如果它不工作,這意味着你在運行時正在對你的代碼做些什麼。 – JJ86

回答

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); 

順便說一句,如果這個解決您的問題,你的問題是可能重複