- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 ResponsiveUIActivity
,它扩展了 SlidingFragmentActivity
。我的应用程序在 android 5.0 版本以下完美运行。但是当我第一次切换滑动菜单时,我的用户界面没有刷新并且不可点击。例如,在第一次切换后,我无法滚动 ListView
或在 EditText
上写东西。如果我切换滑动菜单,UI 会刷新,我可以看到更改。我该如何解决这个问题?
ResponsiveUIActivity.java
public class ResponsiveUIActivity extends SlidingFragmentActivity {
private Fragment mContent;
public static ResponsiveUIActivity rootActivity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle(R.string.responsive_ui);
setContentView(R.layout.responsive_content_frame);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
rootActivity = this;
// startNotificationService();
// check if the content frame contains the menu frame
if (findViewById(R.id.menu_frame) == null) {
setBehindContentView(R.layout.menu_frame);
getSlidingMenu().setSlidingEnabled(true);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
// show home as up so we can toggle
getActionBar().setDisplayHomeAsUpEnabled(false);
getActionBar().setDisplayShowHomeEnabled(false);
} else {
// add a dummy view
View v = new View(this);
setBehindContentView(v);
getSlidingMenu().setSlidingEnabled(false);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
}
// set the Above View Fragment
if (savedInstanceState != null)
mContent = getSupportFragmentManager().getFragment(
savedInstanceState, "mContent");
if (mContent == null)
mContent = new NewsFragment();
// customize the SlidingMenu
SlidingMenu sm = getSlidingMenu();
sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
sm.setShadowWidthRes(R.dimen.shadow_width);
sm.setShadowDrawable(R.drawable.shadow);
sm.setBehindScrollScale(0.25f);
sm.setFadeDegree(0.25f);
sm.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {
@Override
public void onOpened() {
Log.d("ToggleMenu", "onOpened");
}
});
sm.setOnCloseListener(new SlidingMenu.OnCloseListener() {
@Override
public void onClose() {
Log.d("ToggleMenu", "onClose");
}
});
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, mContent).commit();
// set the Behind View Fragment
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.menu_frame,
new MenuFragment((ResponsiveUIActivity) rootActivity))
.commit();
// hide app icon from actionBar
getActionBar().setIcon(android.R.color.transparent);
getActionBar().setTitle("");
/*
* // show the explanation dialog if (savedInstanceState == null) new
* AlertDialog.Builder(this) .setTitle(R.string.what_is_this)
* .setMessage(R.string.responsive_explanation) .show();
*/
}
private void startNotificationService() {
// TODO Auto-generated method stub
// Intent intent = new Intent(rootActivity, NotificationService.class);
// startService(intent);
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
toggle();
}
return super.onOptionsItemSelected((android.view.MenuItem) item);
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
getSupportFragmentManager().putFragment(outState, "mContent", mContent);
}
public void switchContent(final Fragment fragment) {
mContent = fragment;
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, fragment).commit();
Handler h = new Handler();
h.postDelayed(new Runnable() {
public void run() {
getSlidingMenu().showContent();
}
}, 50);
}
@Override
public void onBackPressed() {
Log.v("SignUp", "onbackPressed !!!!!!");
toggle();
}
public void finishActivity() {
super.onBackPressed();
}
}
菜单 fragment .java
@SuppressLint("ValidFragment")
public class MenuFragment extends Fragment {
LinearLayout newsClick, profileClick, adsClick, companyClick, wsClick,
contactsClick, contactClick, backClick, settingsClick;
ResponsiveUIActivity rootActivity;
public MenuFragment(ResponsiveUIActivity rootActivity) {
// TODO Auto-generated constructor stub
this.rootActivity = rootActivity;
}
public MenuFragment() {
super();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v;
if (PublicSharedPreferences.getDefaults(Constants.language,
getActivity()).equals("T")) {
v = inflater.inflate(R.layout.list_tr, null);
} else {
v = inflater.inflate(R.layout.list, null);
}
addMenuButtons(v);
return v;
}
private void addMenuButtons(View v) {
newsClick = (LinearLayout) v.findViewById(R.id.newsClick);
newsClick.setOnClickListener(onclick);
profileClick = (LinearLayout) v.findViewById(R.id.profileClick);
profileClick.setOnClickListener(onclick);
adsClick = (LinearLayout) v.findViewById(R.id.adsClick);
adsClick.setOnClickListener(onclick);
companyClick = (LinearLayout) v.findViewById(R.id.companyClick);
companyClick.setOnClickListener(onclick);
wsClick = (LinearLayout) v.findViewById(R.id.wsClick);
wsClick.setOnClickListener(onclick);
contactsClick = (LinearLayout) v.findViewById(R.id.contactsClick);
contactsClick.setOnClickListener(onclick);
contactClick = (LinearLayout) v.findViewById(R.id.contactClick);
contactClick.setOnClickListener(onclick);
backClick = (LinearLayout) v.findViewById(R.id.backClick);
backClick.setOnClickListener(onclick);
settingsClick = (LinearLayout) v.findViewById(R.id.settingsClick);
settingsClick.setOnClickListener(onclick);
}
OnClickListener onclick = new OnClickListener() {
Fragment newContent = null;
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.newsClick:
newContent = new NewsFragment();
break;
case R.id.profileClick:
newContent = new ProfileFragment();
break;
case R.id.adsClick:
newContent = new RecruitmentAdsFragment();
break;
case R.id.companyClick:
newContent = new CompanyProfileFragment();
break;
case R.id.wsClick:
newContent = new WsFragment();
break;
case R.id.contactsClick:
newContent = new ContactsFragment();
break;
case R.id.contactClick:
newContent = new ContactFragment();
break;
case R.id.backClick:
PublicSharedPreferences.removeDefaults(Constants.token,
getActivity().getApplicationContext());
PublicSharedPreferences.removeDefaults(Constants.TURKISH_ID,
getActivity().getApplicationContext());
if (PublicSharedPreferences.getDefaults(
Constants.TAG_NATIONALITY, getActivity()
.getApplicationContext()) != null) {
PublicSharedPreferences.removeDefaults(
Constants.TAG_NATIONALITY, getActivity()
.getApplicationContext());
}
if (PublicSharedPreferences.getDefaults(
Constants.TAG_EXPERIENCE, getActivity()
.getApplicationContext()) != null) {
PublicSharedPreferences.removeDefaults(
Constants.TAG_EXPERIENCE, getActivity()
.getApplicationContext());
}
if (PublicSharedPreferences.getDefaults(
Constants.TAG_DATE_OF_BIRTH, getActivity()
.getApplicationContext()) != null) {
PublicSharedPreferences.removeDefaults(
Constants.TAG_DATE_OF_BIRTH, getActivity()
.getApplicationContext());
}
rootActivity.finishActivity();
Intent preLoginIntent = new Intent(getActivity(),
PreLoginActivity.class);
preLoginIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(preLoginIntent);
getActivity().overridePendingTransition(
R.anim.animated_activity_slide_left_in,
R.anim.animated_activity_slide_right_out);
break;
case R.id.settingsClick:
Log.v("Tekfen", "Settings");
newContent = new SettingsFragment();
break;
default:
break;
}
if (newContent != null)
switchFragment(newContent);
}
};
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
// the meat of switching the above fragment private void
public void switchFragment(Fragment fragment) {
if (getActivity() == null)
return;
if (getActivity() instanceof ResponsiveUIActivity) {
ResponsiveUIActivity ra = (ResponsiveUIActivity) getActivity();
ra.switchContent(fragment);
}
}
}
样式.xml
<?xml version="1.0" encoding="utf-8"?>
<style name="ExampleTheme" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="homeAsUpIndicator">@drawable/new_indicator</item>
<item name="android:homeAsUpIndicator">@drawable/new_indicator</item>
</style>
<style name="AppTheme" parent="@style/Theme.Sherlock">
<item name="actionBarStyle">@style/AppTheme.ActionBar</item>
<item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
<item name="homeAsUpIndicator">@drawable/new_indicator</item>
<item name="android:homeAsUpIndicator">@drawable/new_indicator</item>
<item name="android:actionBarItemBackground">@android:color/transparent</item>
<item name="actionBarItemBackground">@android:color/transparent</item>
<item name="android:actionBarSize">100dp</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:activatedBackgroundIndicator">@drawable/activated_background</item>
<item name="activatedBackgroundIndicator">@drawable/activated_background</item>
</style>
<style name="AppTheme.ActionBar" parent="@style/Widget.Sherlock.ActionBar">
<item name="android:background">@android:color/transparent</item>
<item name="background">@android:color/transparent</item>
</style>
<style name="ProgressHUD" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
</style>
<style name="list_view_divider">
<item name="android:divider">#F0F0F0</item>
<item name="android:dividerHeight">1dp</item>
</style>
最佳答案
我遇到了同样的问题,但我已经设法解决了这个问题。实际问题在于硬件加速方面的缺陷,因此如果您将 AndroidManifest 放入您的应用程序hardwareAccelerated="true"您的问题将得到解决。
关于android - 在 Android 5.0 Lollipop 上首次切换滑动菜单后 UI 未刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28563240/
使用 Foundation 6.3.1,我希望在桌面上显示 Canvas 外菜单,在移动设备上显示 Accordion 菜单。例如 This is the desktop view with a co
function HideandUNhideObj(ThisObj) { var nav = document.getElementById(ThisObj).style if (nav.displ
我正在处理一个页面,该页面有一个显示“更新”的链接。当用户单击此链接时,我希望表单使用幻灯片效果并显示在链接下方。提交表单后,它会更新数据库,并且菜单会显示。 我知道这可以用 JavaScript 来
这是我的运行时创建菜单的关键部分: GtkWidget *menu, *menu_item; menu = gtk_menu_new(); menu_item = gtk_image_menu_ite
您好,我想实现一个像这样的 donut 菜单 http://dribbble.com/shots/610433-Wheel-Nav我知道有一种在 css3 中制作 donut 的简单方法。 .doug
我的应用程序中有一个菜单,当菜单打开时我会触发触觉反馈(来自 onTagGesture Action )。 然而 有时当我点击菜单打开触发器时,菜单实际上不会打开,但我仍然收到触觉反馈。我只在菜单实际
也许这是一个简单的解决方案,但我坚持了下来。 这里有我的代码 http://jsbin.com/ejomuv纯CSS菜单 我想要做的是在悬停时在下拉按钮底部设置 0px 边框半径,但仅在下拉菜单上设置
下拉列表、菜单和组合框都是非常常见的用户界面元素。用户习惯于在 native 应用程序和 Web 应用程序中看到这些元素,但它们存在一些问题。 您必须瞄准鼠标。当您将鼠标移开时,有些菜单会折叠,而有些
我有 codeigniter 背景。现在,我正在学习 Laravel。所以,我处于这种情况(示例),我正在尝试创建一个具有多个用户的 web 应用程序。用户类型 A ,他们可以访问菜单 a、菜单 b
我正在学习 JQuery 的基础知识,我的老师显示的 menu() 看起来根本不像我的。 这是我创建的菜单的 LAF: 代码: Hello Hi Welcome World
- SELECT - 上面的显示:none不起作用。我也尝试过“隐藏”,但没有成功。 如何隐藏此选择菜单? 最佳答案 换行与 或并将 id 添加到标签。 - SELECT
我使用 Jquery 创建菜单,如下所示: homeinfo2info3 Jquery 代码如下: $(document).ready(function(){ $(".prof_info1").unb
我是 C 新手,我需要为项目构建一个带有循环的菜单。我有两个问题。 1) 我想在 else 中添加一个字符,如果在主菜单中按“2”后询问某事,问题将是“你要去参加事件吗?”用户可以输入聊天“Y”或“N
大家好,过去几个小时我一直在为类(class)编写这个程序,但似乎无法解决最后两个问题。它基本上是一个略微修改的 CashRegister 类,通过菜单提供基本功能。我遇到的问题是: 1) 用户第一次
List studentInfo = new LinkedList(); int choice; boolean flag = true; Student student =
我正在使用 bootsrap 4 alpha 6 和 midnight.js 来更改导航菜单切换器的颜色。我想在它旁边插入一个文本(菜单)。捕获中的示例。对于文本切换器,我使用 fontawesome
我正在尝试使用 CSS 菜单解决菜单在 IE 6 中无法正确显示的问题 alt text http://content.screencast.com/users/Dokmanc/folders/Jin
我无法让这段代码工作 - 我想要的是当我将鼠标悬停在圆圈上时,菜单会出现,然后如果我将鼠标从圆圈或菜单上移开,它就会消失。我尝试做的任何事情都是非常错误的,例如 onmouseover 在圆圈上然后在
我有一个典型的 CSS 顶部导航,当您滑过不同的父菜单项时,它会显示一个子菜单。如何更改代码以保持显示事件子菜单。因此,如果您在该父菜单项或其子项之一的页面上,它将保持显示该子菜单,除非您将鼠标悬停在
我很亲近。我怎样才能在我的 上有 MENU 1。 fiddle显示为默认菜单选项,然后在 MENU 2 悬停时更改? 提前致谢。继续编码! :) 最佳答案 要根据您的响应完全远离 jquery 进行编
我是一名优秀的程序员,十分优秀!