我将ActionBarSherlock更改为AppCompat v7.我已经完成了使其工作所需的所有更改,但是使用共享图标(使用ShareActionProvider)发生了一些奇怪的事情.与其他图标相比,共享图标太大.我也使用支持库进行搜索,其大小正确.问题在于共享图标.

my_menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:moblee="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/menu_share"
android:padding="10dp"
android:title="@string/menu_share"
moblee:actionProviderClass="android.support.v7.widget.ShareActionProvider"
moblee:showAsAction="always"/>
<item
android:id="@+id/menu_search"
android:title="@string/menu_search"
moblee:actionViewClass="android.support.v7.widget.SearchView"
moblee:showAsAction="always"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
分段:
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.my_menu, menu);
MenuItem item = menu.findItem(R.id.menu_share);
ShareActionProvider shareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
shareActionProvider.setShareIntent(getDefaultShareIntent());
}
Run Code Online (Sandbox Code Playgroud)
styles.xml
<style name="Theme.Custom" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/main_bar</item>
<item name="colorPrimaryDark">@color/main_bar</item>
<item name="actionBarItemBackground">@drawable/selectable_background_custom</item>
<item name="selectableItemBackground">@drawable/selectable_background_custom</item>
<item name="android:windowBackground">@color/background</item>
<item name="android:popupMenuStyle">@style/PopupMenu.Custom</item>
<item name="android:dropDownListViewStyle">@style/DropDownListView.Custom</item>
<item name="android:actionDropDownStyle">@style/DropDownNav.Custom</item>
<item name="android:actionModeBackground">@drawable/cab_background_top_custom</item>
<item name="android:actionModeSplitBackground">@drawable/cab_background_bottom_custom</item>
<item name="android:actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Custom</item>
<item name="vpiTabPageIndicatorStyle">@style/VpiTabPageIndicator.Custom</item>
<item name="android:editTextBackground">@drawable/edit_text_holo_light</item>
<item name="android:listChoiceBackgroundIndicator">@drawable/list_selector_holo_light</item>
<item name="android:activatedBackgroundIndicator">@drawable/activated_background_holo_light</item>
<item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb_holo</item>
<item name="android:listViewStyle">@style/ListViewCustom</item>
<item name="android:gridViewStyle">@style/GridViewCustom</item> …Run Code Online (Sandbox Code Playgroud) 有CardView一个EditText,当键盘打开时,它被放置在键盘的正下方EditText.但是如下所示,键盘太靠近EditText,因为没有足够的空间,很难按"发送"按钮.
有没有办法在CardView结束后显示键盘?我在这里看到了一些类似的问题,但它们都没有提供我需要的解决方案.一些答案建议在EditText中设置paddingBotton,但这不是我想要的.我不想要空间,我想展示CardView的结尾.
请注意,我不想调整布局大小,因此"adjustResize"不是解决方案,我已在AndroidManifest.xml中使用"adjustPan"
<activity
...
android:windowSoftInputMode="adjustPan" />
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
当选择导航抽屉中的项目时,左抽屉和片段会发生变化.问题是,如果已经选择了"项目A",并且用户再次选择它,则对于相同的片段更改片段.
为防止出现这种情况,我需要知道哪个项目已被选中.我使用的是属性mLastSelectedItemPosition,但我不认为这是一个很好的解决方案.有没有办法从导航抽屉中获取当前检查的项目?
class OnNavigationItemSelectedListener implements NavigationView.OnNavigationItemSelectedListener {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
if (mLastSelectedItemPosition != menuItem.getOrder()) {
// Is not the same item, so I can change the fragment.
mLastSelectedItemPosition = menuItem.getOrder();
}
mDrawerLayout.closeDrawers();
return true;
}
}
}
Run Code Online (Sandbox Code Playgroud)