我正在设计一个包含多个页面的视图.我希望上一页和下一页的边缘显示如下,并实现双指滑动以在页面之间切换.

我尝试使用这里ViewPager建议的负页边距,但只显示屏幕上的一个边,而不是同时显示.
或者,有什么方法可以将我的视图的一部分放在屏幕外,然后设置它的动画,给它一个ViewPager类型效果.
我该怎么办呢?谢谢 !
我陷入了一个阶段.我总共有20到25张图像应该像动画一样动画ViewPager.现在所有的图像我都有onClick()事件,我不知道我是否应该使用ViewPager或ViewFlipper.我可以实现这两件事,这里没有问题.
我想要的:我只是想根据我的问题提出一个最好的选择,ViewFlipper或者ViewPager?
我搜索过的内容:我在StackOverflow上经历了不同的链接,即如何提高ViewFlipper/ViewAnimator和ViewFlipper与Fragments的性能,但我找不到我想要的东西.
我曾经有过ViewPager一些工作,但当时只有3或4个Fragments我必须管理.如果我用它来解决这个问题,我这次必须管理25个Fragments.所以我想知道是否有更好的解决方案.
我也进行了一些研发,ViewFliper并且知道它只有一个Activity我必须管理,但它没有动画精度ViewPager.
请建议我是否应该去ViewPager或ViewFlipper?
提前致谢.
我有一个需要改进的ViewFlipper实现.此ViewFlipper有三个子视图.基本上,我想要一个关于哪个子视图当前处于活动状态的指标.我的ViewFlipper只是复杂布局的一部分,它也有列表视图等.
视图切换也是自动的,并在指定的时间间隔内完成.
从Android的SDK参考中,我没有看到ViewFlipper何时更改子视图的任何监听器.
你们知道我能为这次活动听一听的方式吗?
或者除了使用ViewFlipper之外,还有其他方法可以实现此功能吗?
谢谢!
我有一个ViewFlipper,它有10个视图,每个视图大小不同(高度明智).一切都很好.问题是,较小的视图被填充(高度)以使其高度等于最大视图.有没有办法避免这个问题?
谢谢!拉胡尔.
我正在开发一款带有主屏幕的应用.此主屏幕应该像Android主屏幕一样,您可以通过在触摸屏上投掷手指在多个视图之间切换.
解决方案很简单.我有3个视图实例,右,左和当前视图.我从之前初始化的viewflipper中获取了这个实例.由于我有一个HTC G1,我的屏幕宽320像素,高480像素.
想象一下,当您触摸屏幕时,您会捕捉动作下移动作事件的下降值.然后移动手指,屏幕应该以完全相同的方式移动,因此您必须重新计算视图的位置.到目前为止,它对我有用,但我面临一个奇怪的问题.当您触摸右视图而不移动手指但将其保持在屏幕上不到一秒时,视图将消失并显示左视图.
这是我的代码:
public class MainActivity extends Activity implements OnTouchListener{
private ViewFlipper vf;
private float downXValue;
private View view1, view2, view3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.vf = (ViewFlipper) findViewById(R.id.flipper);
if(this.vf != null){
this.view1 = vf.getChildAt(0);
this.view2 = vf.getChildAt(1);
this.view3 = vf.getChildAt(2);
vf.setDisplayedChild(0);
}
LinearLayout layMain = (LinearLayout) findViewById(R.id.layout_main);
layMain.setOnTouchListener((OnTouchListener) this);
}
public boolean onTouch(View v, MotionEvent arg1) {
final View currentView = …Run Code Online (Sandbox Code Playgroud) 我想要的是背景图像,其行为类似于股票主屏幕或天气应用程序:https://youtube.com/watch?v = i2Oh4GL5wBE#t = 0m54s
我只需要一个没有动画的背景图像(就像那个视频中的道路一样),它在向另一个视图滑动的同时滚动"一点".在我的应用程序中,我想通过滚动背景滑动一些ListViews.
我测试了什么:
两者都有效,但这需要一个非常大的图像,我不确定它是否可以正确缩放到不同的屏幕尺寸.此外,它的行为与原来的主屏幕不同,后者在前景变为下一个视图时移动了一点点.
我在这里阅读帖子:https://stackoverflow.com/questions/2943619/android-make-application-background-behave-like-homescreen-background
我检查了推荐的Launcher.java,它引导我进入了Workspace.java:
据我所知,它通过设置偏移来使用WallpaperManager.
mWallpaperManager.setWallpaperOffsets(getWindowToken(),
Math.max(0.f, Math.min(mScrollX/(float)scrollRange, 1.f)), 0);
Run Code Online (Sandbox Code Playgroud)
API说:
setWallpaperOffsets(IBinder windowToken,float xOffset,float yOffset)当给定窗口后面的墙纸可见时,设置当前墙纸在任何更大空间内的位置.
但据我了解,这只会改变手机本身的背景图像.
我能做什么?您是否知道开源应用程序或示例代码也是如此?可能我必须自己绘制画布(以前从未做过).请给我一些建议.
我想一次显示一张图片.在滑动时,我想用滑动效果更改我的图像.我读到了ViewPager和ViewFlipper.我甚至有一个使用ViewFlipper这样做的例子.只需要正确解释ViewFlipper的使用位置以及ViewPager的使用位置.在我看来,当你想要刷一堆具有某些功能的片段而不是只是刷一些图像时,更有可能使用ViewPager.
但是,如果有人认为应该使用ViewPager而不是ViewFlipper只是为了扫描一堆图像,请简要说明原因?为什么一个人应该使用ViewPager而不是ViewFlipper.哪一个应该更有效率?那么这两个目的是什么?你能举例说明(代码)刷图像吗?
performance android viewflipper android-2.2-froyo android-viewpager
我有以下主要布局:
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<ViewFlipper android:id="@+id/viewstack"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Here I want to add my views which are located in separated xml files. -->
</ViewFlipper>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
以下是我的观点示例:
view_url.xml
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:gravity="center">
<EditText android:text="@+id/EditText01"
android:id="@+id/EditText01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnGenerate"
android:text="Generate"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
view_text.xml
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<EditText android:text="@+id/EditText01"
android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:contentDescription="Enter your text here"
android:layout_width="fill_parent"
android:height="200dp"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我想添加视图:
viewstack = (ViewFlipper) findViewById(R.id.viewstack);));
View viewText = (View) findViewById(R.layout.view_text);
viewstack.addView(viewText); < -- …Run Code Online (Sandbox Code Playgroud) 我有一个有3个孩子的ViewFlipper.
我希望最初能够展示这些孩子中的任何一个.例如,也许我希望ViewFlipper最初加载第二个子而不是第一个.
编辑:我知道我可以使用getChildAt(int index)方法.
当显示ViewFlipper中的子项时,如何获取该子项的索引?
我正在构建一个基于外部数据获取布局的应用程序.根据indata,布局分为不同的块.这些块在viewflipper的帮助下显示.在每个块中,暂时存在一个或多个"textview"和"edittext".在鳍状肢的第一页上,所有数据都在textviews和edittexts中显示.但是在viewflipper的其他页面上,edititexts中的值才会显示,直到edittext聚焦为止.我不知道为什么.所以要清楚.所有edittexts的值实际上都存在,但在edittext聚焦之前不会显示.在我运行应用程序的所有设备上(模拟器,HTC Desire,HTC Wildfire),问题都是一样的.有谁知道如何解决这个问题?
这是生成布局的类:
public class ModuleLayout extends LinearLayout {
public ModuleLayout(Context context, ArrayList<BaseModuleItem> itemList) {
super(context);
TableLayout tempTable = new TableLayout(context);
for (int i = 0; i < itemList.size(); i++)
{
TableRow tempRow = new TableRow(context);
TextView tempTextView = new TextView(context);
tempTextView.setText(itemList.get(i).getName());
EditText tempEditText = new EditText(context);
tempEditText.setText(itemList.get(i).getItemValue());
tempRow.addView(tempTextView);
tempRow.addView(tempEditText);
tempTable.addView(tempRow);
}
tempTable.setColumnStretchable(1, true);
this.addView(tempTable);
}
}
Run Code Online (Sandbox Code Playgroud)
这是行动中问题的图片.

左图显示其所有值都很好.右侧图片位于viewflipper中的第二个位置,并且不显示edittexts中的值,第一个具有焦点的例外情况除外.我还应该提一下,在edittext获得焦点之后,即使我在viewflipper中的其他视图然后返回,它仍继续显示该值.