标签: android-view

双击:放大Android MapView?

经过一些工作,我的路线应用程序工作正常.我唯一想要添加的是双击放大功能,但我不知道如何.

你能给我一个暗示吗?

java android android-view android-mapview android-touch-event

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

如何从View.getDrawableState()中识别状态

我正在尝试创建一个自定义按钮,根据按钮状态(按下,启用等)更改其阴影属性(半径,距离等)

我终于接受了使用XML选择器无法完成的操作,因此我重写了View.drawableStateChanged(),并尝试使用View.getDrawableState()来确定当前状态.

但是,这个函数返回一个int [],我无法弄清楚这个值的含义,以及如何从中提取单个状态.文档是纯粹的废话:

public final int [] getDrawableState()

在API级别1中添加

返回表示视图当前状态的可绘制状态的资源ID数组.

返回当前可绘制状态

我也没能找到在线示例,与此相关的Android源代码非常神秘.

那么,你如何从这个int []中弄清楚,按钮的当前"按下"状态是什么?还是"启用状态"?

android android-ui android-view android-resources android-drawable

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

片段setRetainInstance(true)保存View属性

我对保存位于Android片段内部的View状态的最佳做法感到困惑。

我以为那setRetainInstance(true)可以解决问题。但是,尽管这确实保留了中View声明的旧全局引用Fragment,但在放大布局时将不会使用这些视图。因此,我必须手动将属性从旧的全局View引用转移到膨胀布局中的新View。请参阅下面的代码,了解我的操作方式。

public static class MyFragment extends Fragment {

    // I need to save the state of two views in the fragment
    ProgressBar mProgress;
    TextView mText;


    @Override public void onCreate(Bundle savedInstanceState) {
        // savedInstanceState == null if setRetainInstance == true
        super.onCreate(savedInstanceState);

        // Retain the instance between configuration changes
        setRetainInstance(true);
    }

    @Override public View onCreateView(LayoutInflater i, ViewGroup c, Bundle b) {
        // Inflate xml layout for fragement (orientation dependent)
        View v = i.inflate(R.layout.fragment_main, c, false); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-view

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

无法理解View视图参数

我正在从Android开发者那里学习android 开发

/** Called when the user clicks the Send button */
public void sendMessage(View view) {
// Do something in response to button
}
Run Code Online (Sandbox Code Playgroud)

sendMessage消息方法包含一个参数'View view'?什么是View对象,它有什么作用?

为什么它作为参数传递给方法,它来自哪里?

java android android-view

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

Android View中的默认overScrollMode值

根据Android 文档,overScrollMode的默认值为OVER_SCROLL_ALWAYS。

但是我的ListView似乎没有遵循这种行为。仅当有足够的内容在列表中滚动时,它才会显示过度滚动行为。

我尝试查看Android代码,发现View.java ref中的overScrollMode设置为OVER_SCROLL_IF_CONTENT_SCROLLS

我还检查了ListView和AbsListView的代码,以检查是否在任何地方都设置了overscrollmode,但是我什么也找不到。设置overScrollMode的唯一位置是在View.java中。

这是否意味着与此有关的Android文档不正确?我是否必须在列表视图中将overScrollMode显式设置为“ always”?

android-listview android-overscoll android-view

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

Android重绘不可见的视图吗?

抱歉愚蠢的问题,但Android是否真的重新查看了可见度的视图View.INVISIBLE?与使用相比,它是否会影响整体性能View.GONE

android android-ui android-view

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

什么是这个Android循环视图

我经常在Android上看到这种UI模式.它由一个圆圈组成.

首先Google Fit会使用它.

在此输入图像描述

及时拥有相同的UI模式.并且您可以与它进行交互,更改计时器.

在此输入图像描述

它不是Android标准View的一部分.

  • 这个视图/ UI模式的名称是什么?
  • 你能给类似的开源库链接吗?

user-interface android android-view

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

如何获取View的id的String表示形式

我有一个view,我有它的资源ID(即R.id.xxx),我想提取xxx部分并将其转换为字符串.

这可能吗?

为了清楚起见,我有view.getId() 一个资源整数,而不是id的实际名称.

android android-view android-resources android-identifiers

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

view.findViewById(R.id ....)和findViewById(R.id ...)之间的区别

我正在尝试实现自定义数组适配器,

问题是我使用时代码崩溃了

 ImageView imageView=(ImageView)findViewById(R.id.imageView);
Run Code Online (Sandbox Code Playgroud)

而不是

ImageView imageView=(ImageView)rowView.findViewById(R.id.imageView);
Run Code Online (Sandbox Code Playgroud)

其中rowView是我已经实施的ListView的布局文件.

为什么会发生这种情况,我认为rowView.findViewById(R.id ..)只会让它更快地通过id找到元素,但没有它应用程序崩溃,你能解释一下吗?

这是我的活动代码

公共类MainActivity扩展AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Now for the list view

    ListView listView=(ListView)findViewById(R.id.listView);

    String[] values =new String[]{"iOS","android","firefoxOs","Ubuntu"};

   MySimpleAdapter simpleAdapter=new MySimpleAdapter(this,values);

   listView.setAdapter(simpleAdapter);
    //

    }

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar …
Run Code Online (Sandbox Code Playgroud)

android android-view findviewbyid

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

如何点击一个recyclerview?

首先,我在这个问题上苦苦挣扎了很长时间。我不知道该怎么办,所以我没有运气就遵循了这些步骤和教程。

  1. 单击通过回收站查看空白空间
  2. 点击浏览recyclerview列表项

还有关于StackOverflow的一系列问题。我也写了自己的代码。可能是我在做一些愚蠢的事情,但无法弄清楚。

mRecyclerView.setOnTouchListener((v, event) -> {
    RectF rectf = new RectF((int) event.getX(), 
                            (int) event.getY(), 
                            0, 0);
    boolean contains = getCenter(mHeaderPopUp).contains(rectf);
    if (contains) {
        Toast.makeText(mContext, "Clicked", Toast.LENGTH_SHORT).show();
    }
    return false;
});

private RectF getCenter(View view) {
    Rect rect = new Rect();
    view.getLocalVisibleRect(rect);
    RectF dimens = new RectF((rect.left + rect.width() / 2), 
                             (int) (rect.top + rect.height() / 2),
                             0, 0);
    return dimens;
}
Run Code Online (Sandbox Code Playgroud)

因此,现在我已经尝试了所有这些方法,但是我无法通过recyclerview单击到recyclerview下面的视图,您可以在下图中看到该视图。recyclerview覆盖了屏幕上的所有视图,我需要将点击传递到下面的recyclerview上,我不想将这些视图放在recyclerview上方,因为当您滚动recyclerview时,它将被动画化并覆盖其所有视图。提前致谢。 这是图像

android android-layout android-view android-recyclerview

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