小编che*_*gon的帖子

防止ViewPager破坏屏幕外视图

我有一个ViewPager连接到一个显示三个片段的FragmentPagerAdapter.当ViewPager从当前位置多次滑动时,它似乎会破坏托管片段的视图.

这些视图都是简单的列表,这种优化是完全没必要的,所以我想禁用它.它导致一些视觉问题,因为列表具有应用于它们的布局动画,并且这些动画在被销毁和重新创建后正在重放.它还会每次显示滚动条简介动画(滚动条可以短暂显示以指示可以滚动),这可能会分散注意力,并且用户当前的滚动位置会在此过程中丢失.

它也不会加载第三个片段,直到第一次滑动发生,这是有问题的,因为每个片段处理自己的服务调用,我宁愿在活动加载时同时关闭所有三个片段.延迟第三次服务呼叫不太理想.

有没有办法说服ViewPager停止这种行为并将我的所有片段保存在内存中?

android android-fragments android-viewpager

129
推荐指数
2
解决办法
5万
查看次数

在断点被击中几秒后,Android设备与调试器断开连接

这已经困扰了我几天了.每当我尝试使用断点调试除活动(后台服务,广播接收器,输入法)以外的任何东西时,我的断点将被正常命中,但是大约五秒后设备将终止该过程并断开与调试器的连接.现在还没有足够的时间收集任何有意义的信息,因此调试已经证明非常困难.

debugging android breakpoints

9
推荐指数
1
解决办法
4174
查看次数

将Button设置为类似EditText(但仍然像Button一样)

我意识到这有点奇怪,但我有一个按钮需要看起来像一个EditText但仍然像按钮一样.我的布局XML目前看起来像这样:

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="?android:attr/editTextStyle" />
Run Code Online (Sandbox Code Playgroud)

这给了它一个EditText的外观,但是由于阻止了onClick事件被触发,除非按钮具有焦点(有效地使它需要两次点击),所以还会稍微混淆行为.有没有办法保持风格而不改变按钮的行为?

我想过只做一个看起来像EditText的9补丁背景,但是有很多不同的Android版本和皮肤,我宁可使用系统风格,如果可能的话.

android android-edittext android-button

7
推荐指数
1
解决办法
4335
查看次数

使用菜单按钮在ActionBar上获得适当的用户体验?

我有一个专为Android 2.2构建的应用程序,所以我没有使用3.0+内置的ActionBar类,而是使用几年前推出的Google旧版UI建议构建我自己的自定义ActionBar实现.

我的所有屏幕都有1到3个可以执行的操作,所以它们都非常适合ActionBar UI(Google建议最多有三个按钮).现在的问题是我的屏幕都没有常规选项菜单,因此当用户按下硬件菜单按钮时它们什么都不做.

根据Google的界面指南,这是正确的行为.如果您的活动没有选项菜单,则按下"菜单"按钮时不应执行任何操作.然而,我在用户测试期间发现,当用户按下菜单并且没有任何反应(并且每个用户都尝试过,通常多次)时,用户非常困惑.他们说他们欣赏通过ActionBar在屏幕上显示的动作,但同时他们希望菜单按钮做一些事情.

我一直在关注Google的第一方应用程序,看起来他们总是有足够的选项可以在ActionBar已满后加载选项菜单.Google+似乎在传统方式中使用"菜单"按钮来获取具有一个的手机上的溢出选项,并且它们会在ActionBar中显示一个下拉菜单,用于不支持的手机.如果我有三个以上的动作,那将会有效,但我目前没有.

似乎满足用户期望的唯一方法是将一些没有价值的垃圾选项放入选项菜单中,以便在按下按钮时发生某些事情.我真的不想那样做.有人知道处理这个问题的好方法吗?我应该单独留下菜单按钮并期望人们发现它什么都不做?

user-interface android android-menu android-actionbar

6
推荐指数
1
解决办法
495
查看次数

如何设置Android对话框的MaxWidth?

我有一个自定义样式的对话框,它使用我在XML文件中定义的布局.我希望这个对话框以纵向模式填充屏幕的宽度,但在横向模式下只能填充400dip.MaxWidth似乎是实现这一目标的完美方式,但我无法弄清楚如何为对话框样式或XML布局指定MaxWidth.

layout android dialog

5
推荐指数
1
解决办法
7858
查看次数

如何获取手机上安装的所有输入法(及其名称)的列表?

我正在尝试显示当前安装在手机上的所有输入法的列表.我通过这样做得到一个InputMethodInfo对象的列表:

InputMethodManager imeManager = (InputMethodManager)getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
List<InputMethodInfo> InputMethods = imeManager.getEnabledInputMethodList();
Run Code Online (Sandbox Code Playgroud)

这有效,但InputMethodInfo对象在任何地方都没有友好名称.例如,它代替"Swype",它会给我"com.swype.android.inputmethod.SwypeInputMethod"

这不是向用户显示列表的非常友好的方式,并且这些包名称不遵循严格的模式,因此我无法可靠地从类名称中解析键盘名称.

我甚至试图得到真正的幻想,并获得InputMethodInfo的相应ServiceInfo对象,以便我可以解析其标签资源整数,但我每次运行时都会得到NameNotFoundExceptions.

ComponentName componentName = inputMethodInfo.getComponent();
ServiceInfo serviceInfo = packageManager.getServiceInfo(componentName, 0);
Resources resources = getResources();
try 
{
 String imeServiceLabel = resources.getString(serviceInfo.labelRes);
} 
catch (NameNotFoundException e) { }
Run Code Online (Sandbox Code Playgroud)

有人知道怎么做到这一点吗?我不在乎如何做,我只需要能够生成一个输入方法列表,因为它们出现在手机的语言和键盘菜单中,然后存储用户的选择.我想也许我可以使用InputMethodManager启动标准输入法选择菜单,然后通过查看菜单关闭后当前选择的IME来查看用户选择了哪一个,但据我所知,没有办法看到当前在系统中选择了哪个IME.

methods android input ime

3
推荐指数
1
解决办法
3928
查看次数

如何在Android中显示非模态的临时弹出消息?

有关我正在寻找的内容的示例,请在Gmail应用中撰写邮件时点击"主页"按钮.屏幕底部会弹出一条消息,显示"消息已保存为草稿".

我无法弄清楚如何自己显示其中一条消息,我不知道该怎么称呼它所以我无法搜索它.

android

2
推荐指数
1
解决办法
1703
查看次数