Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Calculate ActionBar height
- TypedValue tv = new TypedValue();
- if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
- {
- actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
- }
- android:paddingTop="?android:attr/actionBarSize"
- TypedValue tv = new TypedValue();
- if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
- actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
- if(actionBarHeight ==0 && getTheme().resolveAttribute(com.actionbarsherlock.R.attr.actionBarSize, tv, true)){
- actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
- }
- //OR as stated by @Marina.Eariel
- TypedValue tv = new TypedValue();
- if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB){
- if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
- actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
- }else if(getTheme().resolveAttribute(com.actionbarsherlock.R.attr.actionBarSize, tv, true){
- actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
- }
- TypedValue tv = new TypedValue();
- if (getActivity().getTheme().resolveAttribute(R.attr.actionBarSize, tv, true))
- {
- int actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
- }
- private int getActionBarHeight() {
- int actionBarHeight = getSupportActionBar().getHeight();
- if (actionBarHeight != 0)
- return actionBarHeight;
- final TypedValue tv = new TypedValue();
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
- if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
- actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, getResources().getDisplayMetrics());
- } else if (getTheme().resolveAttribute(com.actionbarsherlock.R.attr.actionBarSize, tv, true))
- actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, getResources().getDisplayMetrics());
- return actionBarHeight;
- }
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <style name="Theme.FixedSize" parent="Theme.Sherlock.Light.DarkActionBar">
- <item name="actionBarSize">48dip</item>
- <item name="android:actionBarSize">48dip</item>
- </style>
- </resources>
- android:theme="@style/Theme.FixedSize"
- int actionBarHeight;
- int[] abSzAttr;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
- abSzAttr = new int[] { android.R.attr.actionBarSize };
- } else {
- abSzAttr = new int[] { R.attr.actionBarSize };
- }
- TypedArray a = obtainStyledAttributes(abSzAttr);
- actionBarHeight = a.getDimensionPixelSize(0, -1);
- ?attr/actionBarSize
- public static int getThemeAttributeDimensionSize(Context context, int attr)
- {
- TypedArray a = null;
- try{
- a = context.getTheme().obtainStyledAttributes(new int[] { attr });
- return a.getDimensionPixelSize(0, 0);
- }finally{
- if(a != null){
- a.recycle();
- }
- }
- }
- public int getActionBarHeight() {
- int height;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
- height = getActivity().getActionBar().getHeight();
- } else {
- height = ((ActionBarActivity) getActivity()).getSupportActionBar().getHeight();
- }
- return height;
- }
- public int getActionBarHeight() {
- final TypedArray ta = getContext().getTheme().obtainStyledAttributes(
- new int[] {android.R.attr.actionBarSize});
- int actionBarHeight = (int) ta.getDimension(0, 0);
- return actionBarHeight;
- }
- public static int getActionBarHeight(Activity activity) {
- TypedValue typedValue = new TypedValue();
- int attributeResourceId = android.R.attr.actionBarSize;
- if (activity instanceof AppCompatActivity) {
- attributeResourceId = R.attr.actionBarSize;
- }
- if (activity.getTheme().resolveAttribute(attributeResourceId, typedValue, true)) {
- return TypedValue.complexToDimensionPixelSize(typedValue.data, activity.getResources().getDisplayMetrics());
- }
- return (int) Math.floor(activity.getResources()
- .getDimension(R.dimen.my_default_value));
- }
- var styledAttributes = Context.Theme.ObtainStyledAttributes(new[] { Android.Resource.Attribute.ActionBarSize });
- var actionBarSize = (int)styledAttributes.GetDimension(0, 0);
- styledAttributes.Recycle();
- int[] location = new int[2];
- mainView.getLocationOnScreen(location);
- int toolbarHeight = location[1];
- The action bar now enhanced to app bar.So you have to add conditional check for getting height of action bar.
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
- height = getActivity().getActionBar().getHeight();
- } else {
- height = ((ActionBarActivity) getActivity()).getSupportActionBar().getHeight();
- }
- @Override
- public boolean onPrepareOptionsMenu(Menu menu) {
- ....
- int actionBarHeight = getActionBar().getHeight());
- .....
- }
- Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
- setSupportActionBar(toolbar);
- int actionBarHeight = toolbar.getLayoutParams().height;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement