开发者

Custom titlebar doesn't fill titlebar area

开发者 https://www.devze.com 2023-02-13 02:54 出处:网络
I have added a custom titlebar using the following code. However, I seem to have about 10 px spacing left and right a 2px at the bottom, is there any way I can make the custom titlebar fit the titleba

I have added a custom titlebar using the following code. However, I seem to have about 10 px spacing left and right a 2px at the bottom, is there any way I can make the custom titlebar fit the titlebar area?

customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.tab);
        Display display = getWindowManager().getDefaultDisplay(); 
        
        if (customTitleSupported) {
            getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
                            R.layout.titlebar);
            
            LinearLayout titlebar = (LinearLayout) findViewById(R.id.TitleBarLayOut);
            titlebar.setPadding(-2, -1, -2, -1);
            titlebar.setMinimumWidth(display开发者_StackOverflow.getWidth());
            GradientDrawable grad = new GradientDrawable(Orientation.TOP_BOTTOM,
                      new int[] {Color.RED, Color.YELLOW}
                    );
            titlebar.setBackgroundDrawable(grad);

            playButton = new Button(this);
            playButton.setText("Play");
            playButton.setGravity(Gravity.LEFT);
            
            infoButton = new Button( this );
            infoButton.setText("Info");
            infoButton.setGravity(Gravity.RIGHT);
            
            titlebar.addView(playButton, new LinearLayout.LayoutParams(
                      70,1));
            
            titlebar.addView(infoButton, new LinearLayout.LayoutParams(
                  70,1));
            
            
        }


<?xml version="1.0" encoding="utf-8"?>


You want to fill the background of the actual title bar - not your custom area. Try the solution here worked for me: Set title background color


You'd want to use FILL_PARENT for the width. in XML:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"


Today, this is simple as I know in 2011 it wasn't so simple. The property "Dock" set to "Top" would fill it for you.

titlebar.Dock = DockStyle.Top;
0

精彩评论

暂无评论...
验证码 换一张
取 消