Styling titleDivider in Dialog

后端 未结 15 912
面向向阳花
面向向阳花 2020-12-06 05:27

I am wondering how it is possible to get rid of (or change color) titleDivider in Dialog. It is a blue line below dialog title shown on honeycomb+ devices.

相关标签:
15条回答
  • 2020-12-06 05:27

    This one is tested on some 4.x devices:

        TextView title = (TextView)getWindow().getDecorView().findViewById(android.R.id.title);
        ((ViewGroup)title.getParent()).getChildAt(1).setVisibility(View.GONE);
    
    0 讨论(0)
  • 2020-12-06 05:31

    You need to implement

    myDialog = builder.create();
    myDialog.setOnShowListener(new OnShowListenerMultiple());
    
    //----------------------------
    //Function to change the color of title and divider of AlertDialog
    public static class OnShowListenerMultiple implements DialogInterface.OnShowListener {
        @Override
        public void onShow( DialogInterface dialog ) {
            if( !(dialog instanceof Dialog) )
                return;
    
            Dialog d = ((Dialog) dialog);
            final Resources resources = d.getContext().getResources();
            final int color = AppUtility.getColor( resources, R.color.defaultColor );
    
            try {
                int titleId = resources.getIdentifier( "android:id/alertTitle", null, null );
                TextView titleView = d.findViewById( titleId );
                titleView.setTextColor( color );
            }
            catch( Exception e ) {
                Log.e( "XXXXXX", "alertTitle could not change color" );
            }
    
            try {
                int divierId = resources.getIdentifier( "android:id/titleDivider", null, null );
                View divider = d.findViewById( divierId );
                divider.setBackgroundColor( color );
            }
            catch( Exception e ) {
                Log.e( "XXXXXX", "titleDivider could not change color" );
            }
        }
    }
    
    0 讨论(0)
  • 2020-12-06 05:33

    use

     <View android:id="@+id/titleDivider"
            android:layout_width="match_parent"
            android:layout_height="2dip"
            android:background=#CC3232 />
    
    0 讨论(0)
  • 2020-12-06 05:35

    Do you watchthis and there is a pcecial library for that, you can watch it there. And the last link will solve you problem

    0 讨论(0)
  • 2020-12-06 05:36

    you can make a custom dialog like this:

        Dialog dialog = new Dialog(this);
        dialog.setContentView(R.layout.custom_dialog);
        Button okay = (Button) dialog.findViewById(R.id.button1);
        okay.setOnClickListener(new OnClickListener() {
    
             public void onClick(View arg0) {
    
               // do your work
             }
        });
    

    Set a custom title in layout don't use android

         dialog.setTitle();
    

    and your custom_dialog.xml

      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:android1="http://schemas.android.com/apk/res/android"
       android:id="@+id/layout_root"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:orientation="vertical"
       android:padding="10dp">
    
      <TextView
          android:id="@+id/textView1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textColor="#ffffff"
          android:textSize="40sp" 
          android:text="Hello"/>
    
    
        <Button
            android:id="@+id/button1"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="150dp"
            android:text="OK" />
    
        </RelativeLayout>
    
    0 讨论(0)
  • 2020-12-06 05:36

    These is no way hiding it by control brotha.. I've had the same problem. only thing you can do is create your own CustomDialog

    Here is a sample App

    Download and have look at the design pattern, then it will be easy

    Here is one Tutorial About making Custom Dialog

    Important part is after creating the DialogObject don't set the Title by setTitle() create TextView inside your CustomLayout and call it from findViewByID() and set your title

    0 讨论(0)
提交回复
热议问题