优化:ActionBar弹出菜单的位置

pull/86/head
pppscn 3 years ago
parent 0a9c84ad01
commit 4b856f8d36

@ -12,9 +12,9 @@ import android.os.PowerManager;
import android.service.notification.StatusBarNotification;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
@ -40,6 +40,7 @@ import com.idormy.sms.forwarder.utils.PhoneUtils;
import com.idormy.sms.forwarder.utils.SmsUtil;
import com.idormy.sms.forwarder.utils.aUtil;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@ -314,6 +315,11 @@ public class MainActivity extends AppCompatActivity implements NotifyListener, R
builder.show();
}
public void toAppList() {
Intent intent = new Intent(this, AppListActivity.class);
startActivity(intent);
}
public void toClone() {
Intent intent = new Intent(this, CloneActivity.class);
startActivity(intent);
@ -360,11 +366,22 @@ public class MainActivity extends AppCompatActivity implements NotifyListener, R
startActivity(intent);
}
//启用menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
//menu点击事件
@SuppressLint("NonConstantResourceId")
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.to_app_list:
toAppList();
return true;
case R.id.to_clone:
toClone();
return true;
@ -379,13 +396,26 @@ public class MainActivity extends AppCompatActivity implements NotifyListener, R
}
}
//设置menu图标显示
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
return true;
public boolean onMenuOpened(int featureId, Menu menu) {
if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (NoSuchMethodException e) {
Log.e(TAG, "onMenuOpened", e);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
return super.onMenuOpened(featureId, menu);
}
/**
*
*

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M17,1.01L7,1c-1.1,0 -1.99,0.9 -1.99,2v18c0,1.1 0.89,2 1.99,2h10c1.1,0 2,-0.9 2,-2L19,3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,19L7,19L7,5h10v14zM12.8,13.22v1.75l3.2,-2.99L12.8,9v1.7c-3.11,0.43 -4.35,2.56 -4.8,4.7 1.11,-1.5 2.58,-2.18 4.8,-2.18z"/>
</vector>

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M19.14,12.94c0.04,-0.3 0.06,-0.61 0.06,-0.94c0,-0.32 -0.02,-0.64 -0.07,-0.94l2.03,-1.58c0.18,-0.14 0.23,-0.41 0.12,-0.61l-1.92,-3.32c-0.12,-0.22 -0.37,-0.29 -0.59,-0.22l-2.39,0.96c-0.5,-0.38 -1.03,-0.7 -1.62,-0.94L14.4,2.81c-0.04,-0.24 -0.24,-0.41 -0.48,-0.41h-3.84c-0.24,0 -0.43,0.17 -0.47,0.41L9.25,5.35C8.66,5.59 8.12,5.92 7.63,6.29L5.24,5.33c-0.22,-0.08 -0.47,0 -0.59,0.22L2.74,8.87C2.62,9.08 2.66,9.34 2.86,9.48l2.03,1.58C4.84,11.36 4.8,11.69 4.8,12s0.02,0.64 0.07,0.94l-2.03,1.58c-0.18,0.14 -0.23,0.41 -0.12,0.61l1.92,3.32c0.12,0.22 0.37,0.29 0.59,0.22l2.39,-0.96c0.5,0.38 1.03,0.7 1.62,0.94l0.36,2.54c0.05,0.24 0.24,0.41 0.48,0.41h3.84c0.24,0 0.44,-0.17 0.47,-0.41l0.36,-2.54c0.59,-0.24 1.13,-0.56 1.62,-0.94l2.39,0.96c0.22,0.08 0.47,0 0.59,-0.22l1.92,-3.32c0.12,-0.22 0.07,-0.47 -0.12,-0.61L19.14,12.94zM12,15.6c-1.98,0 -3.6,-1.62 -3.6,-3.6s1.62,-3.6 3.6,-3.6s3.6,1.62 3.6,3.6S13.98,15.6 12,15.6z"/>
</vector>

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dip">
<ImageView
android:id="@+id/appIcon"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentStart="true"
android:contentDescription="@string/appicon" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dip"
android:layout_toEndOf="@id/appIcon"
android:orientation="vertical">
<TextView
android:id="@+id/appName"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/pkgName"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/verName"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/verCode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
</LinearLayout>
</RelativeLayout>

@ -1,21 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.allmything.linkhelper.MainActivity">
tools:context="com.idormy.sms.forwarder.MainActivity">
<item
android:id="@+id/to_app_list"
android:orderInCategory="100"
android:title="@string/app_list"
android:icon="@drawable/ic_app"
app:showAsAction="never" />
<item
android:id="@+id/to_clone"
android:orderInCategory="100"
android:title="@string/clone"
android:icon="@drawable/ic_clone"
app:showAsAction="never" />
<item
android:id="@+id/to_setting"
android:orderInCategory="100"
android:title="@string/setting"
android:icon="@drawable/ic_settings"
app:showAsAction="never" />
<item
android:id="@+id/to_about"
android:orderInCategory="100"
android:title="@string/about"
android:icon="@drawable/ic_forwarder"
app:showAsAction="never" />
</menu>

@ -6,6 +6,13 @@
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="actionOverflowMenuStyle">@style/OverflowMenu</item>
</style>
<style name="OverflowMenu" parent="Base.Widget.AppCompat.PopupMenu.Overflow">
<item name="android:dropDownWidth">100dp</item>
<!-- 是否覆盖锚点默认为true即盖住Toolbar -->
<item name="overlapAnchor">false</item>
</style>
<style name="rg_style">
@ -21,16 +28,19 @@
<!-- 选择框自定义主题 -->
<style name="select_style">
<item name="android:layout_width">60dip</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginLeft">4dip</item>
<item name="android:layout_marginRight">4dip</item>
<item name="android:paddingTop">4dip</item>
<item name="android:paddingBottom">4dip</item>
<item name="android:layout_marginLeft">5dip</item>
<item name="android:layout_marginRight">5dip</item>
<item name="android:paddingLeft">10dip</item>
<item name="android:paddingRight">10dip</item>
<item name="android:paddingTop">5dip</item>
<item name="android:paddingBottom">5dip</item>
<item name="android:background">@drawable/select_selector</item>
<item name="android:button">@null</item>
<item name="android:gravity">center</item>
<item name="android:textSize">13sp</item>
<item name="android:letterSpacing">0.1</item>
<item name="android:textColor">@drawable/txt_select_selector</item>
</style>
</resources>

Loading…
Cancel
Save