⑴ android viewpager和fragment实现顶部导航界面滑动效果为什么需要三个fragment
实现顶部效果的话,不一定要3个的,两个应该也可以有效果的,viewpager可以提前加载fragment
⑵ android 微信导航栏的滑动效果(滑块随着页面滑动也跟着平滑)怎么做,大神有demo吗
简单的Actionbar 搭配ViewPager。你在eclipse中new 一个Activity,选择blank activity,然后在Navigation type选择ActionBar tabs with ViewPager,就会帮你生成一个demo了。
⑶ android中怎么使我自定义的导航栏随着最顶部的状态栏滑动隐藏呢
状态栏滑动隐藏已经可以了,就是不知道怎么随着滑动使导航栏也跟着滑动,重点是自定义的不是自带的。
⑷ 小程序 顶部导航栏怎样做成可滑动
android4.0隐藏下方的导航栏用requestWindowFeature(Window.
⑸ 如何实现手机上能左右滑动的页面导航菜单
Android上有一个控件叫做ViewPager,该控件可以根据item的多少实现左右滑动的效果。Android上还有一个东西叫做Fragment,这是一个依赖于Activity而又独立的页面。综合这两个控件的特性,可以使用ViewPager+Fragment的方式,即在ViewPager里嵌入Fragment的方式,实现页面左右滑动的效果。
⑹ android listview如何按时加滚动到顶部
listview的一些方法:
1.public
void setSelection (int position)
position位置的item置顶(即position位置的item到listview的最顶端),但是,没有从原来位置到顶端的滑动效果。
2.public
void setSelectionFromTop (int position, int y)
与setSelection 类似。setSelection(position)就是setSelectionFromTop (position,0)
选中position指定的项目,并将所选项置于距离ListView顶端y像素的位置
参数
position 需要选中的项目的索引(从0开始)
y
距离ListView(包括间隙)顶端的位置
3.public
void smoothScrollToPositionFromTop (int position, int
offset)
平滑滚动到指定的适配器位置。 指定位置的视图会滚动到相对顶边偏移 offset 像素的位置显示。
如果无法做到(比如该偏移量会使首尾条目超越列表边缘),会滚动到尽量接近的位置。
参数
position 滚动到的位置
offset 滚动结束时,指定 position 条目距离视图顶部的像素数
当offset=0时,可以把position位置的item置顶,而且带有滑动效果,即会从原来位置轻轻滑动到最顶
端位置。
测试:
可以顺利滚动,返回滚动也很顺利,滑动顺畅
4、public void
smoothScrollToPositionFromTop(int position)
参数:
position 滚动到的位置
带有滑动效果的滚动到指定位置。
如何判断其内容已滚动到最顶部或者最底部看
getListView().setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if(firstVisibleItem==0){
Log.e("log", "滑到顶部");
}
if(visibleItemCount+firstVisibleItem==totalItemCount){
Log.e("log", "滑到底部");
}
}
});
平滑的滚动listview到一个指定位
package com.android.contacts.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;
public class AutoScrollListView extends ListView {
private static final
float PREFERRED_SELECTION_OFFSET_FROM_TOP = 0.33f;
private int
mRequestedScrollPosition = -1;
private boolean
mSmoothScrollRequested;
public
AutoScrollListView(Context context) {
super(context);
}
public
AutoScrollListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public
AutoScrollListView(Context context, AttributeSet attrs, int
defStyle) {
super(context, attrs, defStyle);
}
public void
requestPositionToScreen(int position, boolean smoothScroll) {
mRequestedScrollPosition = position;
mSmoothScrollRequested = smoothScroll;
requestLayout();
}
@Override
protected void
layoutChildren() {
super.layoutChildren();
if (mRequestedScrollPosition == -1) {
return;
}
final int position =
mRequestedScrollPosition;
mRequestedScrollPosition = -1;
int firstPosition = getFirstVisiblePosition() +
1;
int lastPosition =
getLastVisiblePosition();
if (position >= firstPosition &&
position <= lastPosition) {
return; //
Already on screen
}
final int offset = (int) (getHeight() *
PREFERRED_SELECTION_OFFSET_FROM_TOP);
if (!mSmoothScrollRequested) {
setSelectionFromTop(position, offset);
// Since
we have changed the scrolling position, we need to redo child
layout
// Calling
"requestLayout" in the middle of a layout pass has no effect,
// so we
call layoutChildren explicitly
super.layoutChildren();
} else {
// We will
first position the list a couple of screens before or after
// the new
selection and then scroll smoothly to it.
int
twoScreens = (lastPosition - firstPosition) * 2;
int
preliminaryPosition;
if
(position < firstPosition) {
preliminaryPosition = position + twoScreens;
if (preliminaryPosition >=
getCount()) {
preliminaryPosition = getCount() - 1;
}
if (preliminaryPosition <
firstPosition) {
setSelection(preliminaryPosition);
super.layoutChildren();
}
} else
{
preliminaryPosition =
position - twoScreens;
if (preliminaryPosition <
0) {
preliminaryPosition = 0;
}
if
(preliminaryPosition > lastPosition) {
setSelection(preliminaryPosition);
super.layoutChildren();
}
}
smoothScrollToPositionFromTop(position, offset);
}
}
}
⑺ 安卓开发 上面的导航栏和底部的导航栏 控件实现的
在Layout里面自己新建一个xml,里面把你的导航栏自定义好,然后在你需要用到的地方
<include layout="@layout/head_title" /> 就可以了
⑻ Android应用的tab导航是放在屏幕顶部好还是底部好
Android Design 中说的是放在顶部,而且 Effective 的 Navigation 方式是再配上 ViewPager .因为现在手机屏幕越做越大,单纯把 Tab 放在顶上,几个 Fragment 之间还不好划着切换会很蛋疼,例子见三星的大部分原厂应用(其实三星做系统也就基本上改UI,深层次改动没有,所以三星的系统也是'各大厂商修改的 Android 里最趋于稳定的)。而Tab放在下面的好处不必多说,可以让用户单手就可以按到并实现切换,例如魅族的 SmartBar,开发者只要反射一个接口方法就可以把Tab放到下面来,还是蛮方便的。
⑼ android中怎样实现手指向上滑动顶部导航栏从透明变成不透明的
(id)initWithRootViewController:(UIViewController *)rootViewController
{
if (self = [super initWithRootViewController:rootViewController]) {
self.navigationBar.translucent = YES;
}
return self;
}
色调颜色
在我的 UIApplicationDelegate 的子类,我设置导航栏中的色调颜色。我发现色调颜色的 alpha 没有区别。也就是说,使用 alpha 0.1 不会导致要变得更透亮的栏。
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UINavigationBar appearance] setTintColor:[UIColor greenColor]];
}
边缘
在我的内容视图控制器中,我将设置边缘为 UIRectEdgeNone 这样顶部的导航栏不会砍。如果要使用默认的 UIRectEdgeAll ,导航栏将会永久地盖顶部的我的内容。即使我要住在一起这种异常, UIRectEdgeAll 仍然不会启用半透明效果。
(void) viewDidLoad
{
[super viewDidLoad];
self.edgesForExtendedLayout = UIRectEdgeNone;
}
编辑: 试验与边缘
@rmaddy 在评论中所指出的广告问题可能与 edgesForExtendedLayout。我发现综合教程 edgesForExtendedLayout ,并试图实现它:
(void) viewDidLoad
{
[super viewDidLoad];
self.edgesForExtendedLayout = UIRectEdgeAll;
self. = YES;
self. = NO;
}
它不工作。首先,那里是没有半透明效果。第二,我的内容的顶部被切掉。在上面的代码与以下示例页上,神通最初由导航栏和它是很难向滚动。你可以拉下,看到顶部的化身,但当你放开,页面会自动弹起来,神通将会再次被遮掩。
解决方法 1:
问题是由第三方拉下来刷新视图EGORefreshTableHeaderView,而普遍地使用了之前的 iOS 6 介绍系统刷新控制引起的。
这种观点混淆了 iOS 7,让它认为内容是比真的很高。Ios 6 和
7,我已经有条件地切换到使用UIRefreshControl。现在的导航栏不会砍掉我的内容。我可以使用 UIRectEdgeAll
,使我下面的导航栏的内容走。最后,显示我的导航栏与较低的 α 要获得半透明效果色调图。
// mostly rendant calls, because they're all default
self.edgesForExtendedLayout = UIRectEdgeAll;
self. = YES;
self. = NO;
[[UINavigationBar appearance] setTintColor:[UIColor colorWithWhite:0.0 alpha:0.5]];