java - 更改操作栏的大小

标签 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;
    }

}

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

如何更改操作栏的大小?

最佳答案

这是我在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);

顺便说一句,如果这解决了您的问题,您的问题可能是重复的

关于java - 更改操作栏的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19679700/

相关文章:

java - 将 java getTime 时间与表示日期的字符串进行比较

android - 如何压缩android位图并且不改变宽度或高度

multithreading - 多线程 GUI 应用程序的设计模式

android - React Native ProgressBarAndroid 生成微调器,而不是栏

java - 使用 GUI 输出框四舍五入到不同的小数位

java - 从另一个类访问 JTextfield 中的值

java - STS/Eclipse错误:从插件调用代码时出现问题: “org.eclipse.core.resources”

java - 维基百科Tokenizer Lucene

java - 键入按钮时 JButton 不会改变颜色

android - 无法将mysql数组存储到listview中