x要滚动到的x位置
y要滚动到的y位置
onScrollChanged(int l, int t, int oldl, int oldt) 说:
l当前水平滚动原点.
t当前垂直滚动原点.
我想知道什么,在任何地方都找不到,x,y在哪里?左上方?中央?我尝试了一些测试但无法弄明白.
在android中,我们可以将片段滑过另一个吗?例如,在下图中:

有两个片段.一个是红色,另一个是蓝色.如果用户将手指按在黑色箭头上并将其向右拖动,则红色片段也随之拖动,从而覆盖蓝色片段.最后,红色片段覆盖整个蓝色片段.此外,如果用户在红色片段被拖动到不到一半的蓝色片段之前抬起他的手指,则红色片段应该回到其原始位置(因此不覆盖蓝色片段).然而,如果用户不抬起他的手指(即拖动箭头)直到红色片段覆盖蓝色片段的一半以上或整个蓝色片段,则红色片段应覆盖整个蓝色片段.
此外,如果红色片段(如Buttons,EditTexts等等)有任何视图,那么它们也会相应地重新调整大小.
有没有办法做到这一点?如果是,那怎么样?
android android-animation android-layout android-fragments android-view
我有一个GridView显示一些图标.
在我从Android开发者网站上有效地阅读这个显示位图之前,我正在从getView()适配器直接解码本地路径中的位图,如下所示:
public View getView(int position, View convertView, ViewGroup parent) {
...
ImageView icon = ...... (from getTag() of convertView)
icon.setImageBitmap(BitmapUtil.decode(iconPath));
...
}
Run Code Online (Sandbox Code Playgroud)
这种方式无论如何工作正常,我称之为[直接模式],getView()方法的输出日志应该是:
getView(0) // measure kid's layout.
getView(0)
getView(1)
getView(2)
...
getView(n) // when scrolling gridview.
getView(n+1)
...
getView(n+3) // scrolling again.
getView(n+4)
...
Run Code Online (Sandbox Code Playgroud)
然后我试图将代码更改为有效显示位图的文章中提到的[Loader Mode] ,如下所示:
public View getView(int position, View convertView, ViewGroup parent) {
...
ImageView icon = ...... (from getTag() of convertView)
loadIcon(icon, …Run Code Online (Sandbox Code Playgroud) 像下面的东西,但它不起作用.如果我将可绘制颜色切换为蓝色,它可以工作.
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item android:drawable="@android:color/transparent"/>
</ripple>
Run Code Online (Sandbox Code Playgroud) 在片段中,我使用多个子视图为一个布局充气.我需要获得其中一个的尺寸(宽度和高度),这是一个自定义视图.
在自定义视图类中,我可以轻松完成.但是如果我尝试从片段中做到这一点,我总是得到0作为维度.
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
View culoide = view.findViewWithTag(DRAW_AREA_TAG);
Log.d("event", "culoide is: "+culoide.getWidth()); // always 0
}
Run Code Online (Sandbox Code Playgroud)
我认为onViewCreated应该是获得它的正确位置,但这种情况发生了.我在super.onViewCreated之前尝试过,在调试它看起来像'findViewWithTag'找到了正确的视图,仅尝试使用api 7 v4支持.
有帮助吗?
我想让一个活动进入IMMERSIVE模式并在它启动时隐藏顶部和底部系统栏.
在android开发者网站上,他们说我应该使用setSystemUiVisibility()并提供SYSTEM_UI_FLAG_IMMERSIVE 和SYSTEM_UI_FLAG_HIDE_NAVIGATION.
我怎么能OnCreate()在活动的方法中这样做?我认为setSystemUiVisibilityActivity类中没有提供它,它应该在视图中发生.有解决方法吗?
UPDATE
确定根据门把我添加了以下行,但我没有看到任何更改,导航栏和按钮按钮仍然可见:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
}
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE);
}
//Rest of activity code
Run Code Online (Sandbox Code Playgroud) 我想知道是否可以在同一布局中使用两个表面并同时查看每个表面.将来我会看一个视频视图的网格视图,但每个视频视图都使用vlc.
我使用片段修改此示例(android-vlc-sample).
结果是我只看到一个视频......我该如何解决?
从log-cat我没有看到重要的错误,但我认为android UIThread存在渲染问题
Java编码
public class MultipleVideoPlayFragmentActivity extends FragmentActivity {
public final static String LOCATION = "com.compdigitec.libvlcandroidsample.MultipleVideoPlayFragmentActivity.location";
private static final String TAG = "MediaPlayer";
public String mFilePatha;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_multiple_video_play_fragment);
Intent intent = getIntent();
mFilePatha = intent.getExtras().getString(LOCATION);
}
public static class VideoFragment extends Fragment implements
SurfaceHolder.Callback, IVideoPlayer {
public final static String TAG = "LibVLCAndroidSample/VideoActivity";
public final static String LOCATION = "com.compdigitec.libvlcandroidsample.VideoFragment.location";
private String mFilePath;
// display surface
private SurfaceView mSurface; …Run Code Online (Sandbox Code Playgroud) 我正在尝试以下代码并得到一个错误,因为没有定义这样的构造函数.
View v = new View(findViewById(R.id.divider));
有没有简单的方法将视图复制到另一个视图?
我有一个简单的全屏活动.布局检查器显示Android提供的大型根布局层次结构,我不需要全屏显示.
Run Code Online (Sandbox Code Playgroud)
调用Tools > Android > Layout Inspector以查看生成的根模板.
要使其全屏,只需HelloWorld在布局中添加一个ID 到TextView并更新MainActivity.java:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.blcknx.myapplication.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
标志正在隐藏导航,但它们不会删除未使用的布局.
使用简单的TextView.全屏显示.检查Tools > Android > Layout Inspector您删除根布局的距离.显示截图.显示你的代码.
这个问题在很多时候被问过,但我仍然找不到解决这个问题的好方法.
为什么我需要这样做?好吧,因为项目我和我的团队开发有iOS风格.
我尝试了什么?
那么有没有办法改变CardView的阴影颜色,只需对所有布局文件进行最少的编辑,并在视图外部绘制阴影,就像原始的CardView一样?
android shadow android-view android-cardview android-elevation