move Undo button to the top
This commit is contained in:
parent
b9cff1eb76
commit
fd9980ba41
3 changed files with 25 additions and 11 deletions
|
@ -6,6 +6,7 @@ import android.content.pm.PackageManager;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.support.v7.app.ActionBar;
|
import android.support.v7.app.ActionBar;
|
||||||
|
import android.util.TypedValue;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
@ -19,12 +20,28 @@ public class Utils {
|
||||||
Toast.makeText(context, context.getResources().getString(resId), Toast.LENGTH_SHORT).show();
|
Toast.makeText(context, context.getResources().getString(resId), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getActionBarHeight(Context context, Resources res) {
|
||||||
|
final TypedValue tv = new TypedValue();
|
||||||
|
int height = 0;
|
||||||
|
if (context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) {
|
||||||
|
height = TypedValue.complexToDimensionPixelSize(tv.data, res.getDisplayMetrics());
|
||||||
|
}
|
||||||
|
return height;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getStatusBarHeight(Resources res) {
|
||||||
|
int id = res.getIdentifier("status_bar_height", "dimen", "android");
|
||||||
|
if (id > 0) {
|
||||||
|
return res.getDimensionPixelSize(id);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
public static int getNavBarHeight(Resources res) {
|
public static int getNavBarHeight(Resources res) {
|
||||||
int id = res.getIdentifier("navigation_bar_height", "dimen", "android");
|
int id = res.getIdentifier("navigation_bar_height", "dimen", "android");
|
||||||
if (id > 0) {
|
if (id > 0) {
|
||||||
return res.getDimensionPixelSize(id);
|
return res.getDimensionPixelSize(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -343,18 +343,15 @@ public class ViewPagerActivity extends AppCompatActivity
|
||||||
|
|
||||||
private void addUndoMargin() {
|
private void addUndoMargin() {
|
||||||
final Resources res = getResources();
|
final Resources res = getResources();
|
||||||
final int height = Utils.getNavBarHeight(res);
|
|
||||||
final RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) undoBtn.getLayoutParams();
|
final RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) undoBtn.getLayoutParams();
|
||||||
|
final int topMargin = Utils.getStatusBarHeight(res) + Utils.getActionBarHeight(getApplicationContext(), res);
|
||||||
int rightMargin = params.rightMargin;
|
int rightMargin = params.rightMargin;
|
||||||
int bottomMargin = params.bottomMargin;
|
|
||||||
|
|
||||||
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
|
if (getResources().getConfiguration().orientation != Configuration.ORIENTATION_PORTRAIT) {
|
||||||
bottomMargin = height;
|
rightMargin += Utils.getNavBarHeight(res);
|
||||||
} else {
|
|
||||||
rightMargin = height;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
params.setMargins(params.leftMargin, params.topMargin, rightMargin, bottomMargin);
|
params.setMargins(params.leftMargin, topMargin, rightMargin, params.bottomMargin);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -13,10 +13,10 @@
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/undo_delete"
|
android:id="@+id/undo_delete"
|
||||||
android:layout_width="64dp"
|
android:layout_width="56dp"
|
||||||
android:layout_height="64dp"
|
android:layout_height="56dp"
|
||||||
android:layout_alignParentBottom="true"
|
|
||||||
android:layout_alignParentRight="true"
|
android:layout_alignParentRight="true"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
android:padding="@dimen/undo_padding"
|
android:padding="@dimen/undo_padding"
|
||||||
android:src="@mipmap/undo"
|
android:src="@mipmap/undo"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
Loading…
Reference in a new issue