Questions tagged «android»

Android是Google的移动操作系统,用于对数字设备(智能手机,平板电脑,汽车,电视,Wear,Glass和IoT)进行编程或开发。对于与Android相关的主题,请使用特定于Android的标签,例如android-intent,android-activity,android-adapter等。对于与开发或编程无关但与Android框架相关的问题,请使用以下链接:https:// android.stackexchange.com。



18
如何使用透明的ImageButton:Android
<ImageButton android:id="@+id/previous" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/media_skip_backward" android:background="@drawable/transparent"></ImageButton> 这就是我试图获得透明ImageButton以便将这些按钮放置在SurfaceView上的目的。但是,一旦在xml中包含透明行,Eclipse就会给我一个错误。 请帮忙。

10
ViewPager和片段—存储片段状态的正确方法是什么?
片段对于将UI逻辑分为一些模块来说似乎非常好。但是随着ViewPager它的生命周期,我仍然迷茫。因此,非常需要大师的想法! 编辑 请参阅下面的愚蠢解决方案;-) 范围 主要活动有一个ViewPager带有片段。这些片段可以为其他(子主)活动实现一些不同的逻辑,因此片段的数据通过活动内部的回调接口填充。并且所有功能在首次启动时都正常,但是! 问题 重新创建活动时(例如,在方向更改时),ViewPager的片段也是如此。代码(您将在下面找到)说,每次创建活动时,我都会尝试创建一个ViewPager与片段相同的新片段适配器(也许是问题所在),但是FragmentManager已经将所有这些片段存储在某个地方(哪里?),并且为这些人启动娱乐机制。因此,重新创建机制通过我的回调接口调用“旧的”片段的onAttach,onCreateView等,以通过Activity的实现方法来初始化数据。但是此方法指向通过Activity的onCreate方法创建的新创建的片段。 问题 也许我使用的是错误的模式,但即使是Android 3 Pro书籍也没有太多相关信息。因此,请给我一两次拳,并指出正确的方法。非常感谢! 码 主要活动 public class DashboardActivity extends BasePagerActivity implements OnMessageListActionListener { private MessagesFragment mMessagesFragment; @Override protected void onCreate(Bundle savedInstanceState) { Logger.d("Dash onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.viewpager_container); new DefaultToolbar(this); // create fragments to use mMessagesFragment = new MessagesFragment(); mStreamsFragment = new StreamsFragment(); // …


6
如何正确将片段的实例状态保存在后堆栈中?
我在SO上发现了许多类似问题的实例,但不幸的是,没有答案符合我的要求。 我对人像和风景有不同的布局,并且我使用的是后向堆栈,这既阻止了我的使用,setRetainState()又使用了配置更改例程的技巧。 我在TextViews中向用户显示某些信息,这些信息不会保存在默认处理程序中。当仅使用“活动”编写我的应用程序时,以下方法运行良好: TextView vstup; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.whatever); vstup = (TextView)findViewById(R.id.whatever); /* (...) */ } @Override public void onSaveInstanceState(Bundle state) { super.onSaveInstanceState(state); state.putCharSequence(App.VSTUP, vstup.getText()); } @Override public void onRestoreInstanceState(Bundle state) { super.onRestoreInstanceState(state); vstup.setText(state.getCharSequence(App.VSTUP)); } 使用Fragments,这仅在非常特殊的情况下有效。具体来说,令人震惊的是替换片段,将其放回堆栈中,然后在显示新片段时旋转屏幕。据我了解,旧片段onSaveInstanceState()在被替换时不会收到调用,但仍以某种方式保持链接,Activity而当该方法View不再存在时,稍后会调用此方法,因此将我TextView的任何结果都查找到中NullPointerException。 另外,我发现即使TextViews使用Fragments也可以,但Activity对s 保持引用不是一个好主意。在这种情况下,onSaveInstanceState()实际上可以保存状态,但是如果在隐藏片段时旋转屏幕两次,问题就会再次出现,因为onCreateView()在新实例中不会调用该片段。 我想到了将状态保存onDestroyView()到一些Bundle-type类成员元素中(实际上是更多数据,而不仅仅是一个TextView)并保存到其中,onSaveInstanceState()但还有其他缺点。首先,如果该片段是当前显示,调用两个函数的顺序是相反的,所以我需要考虑两种不同的情况。必须有一个更清洁,正确的解决方案!


10
为什么要使用片段,以及何时使用片段代替活动?
在Android API 11+中,Google发布了一个名为的新类Fragment。 Google在视频中建议,在可能的情况下(link1,link2),我们应该使用片段而不是活动,但它们并没有确切说明原因。 片段的目的是什么以及它们的可能用途(除了一些可以通过简单的视图/布局轻松实现的UI示例)? 我的问题是关于片段的: 使用片段的目的是什么? 与使用活动/视图/布局相比,使用片段的优缺点是什么? 奖励问题: 您能为片段提供一些非常有趣的用途吗?Google在影片中没有提及的内容? 在片段和包含片段的活动之间进行交流的最佳方式是什么? 使用片段时要记住的最重要的事情是什么?您的经验中有任何提示和警告吗?







25
在Android中获取屏幕宽度和高度
如何获取屏幕的宽度和高度并在以下位置使用此值: @Override protected void onMeasure(int widthSpecId, int heightSpecId) { Log.e(TAG, "onMeasure" + widthSpecId); setMeasuredDimension(SCREEN_WIDTH, SCREEN_HEIGHT - game.findViewById(R.id.flag).getHeight()); }
477 android 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.