小编Had*_*sky的帖子

如何在片段中设置ViewPager

我需要在一个片段中放置一个ViewPager,但我有两个片段,片段1是我的菜单,片段2我想用作ViewPagerIndicator.

但是片段不能有另一个片段......我需要做些什么呢?

在此输入图像描述

android android-fragments android-viewpager android-nested-fragment

45
推荐指数
3
解决办法
7万
查看次数

动画淡入淡出

使用此代码我只有淡入淡出,我正在寻找如何添加淡出.我添加了另一个名为"fadeout"的xml,但我无法将其集成到我的代码中.

ImageView imageView = (ImageView)findViewById(R.id.imageView);
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein);
imageView.startAnimation(fadeInAnimation);

button1.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        imageView.startAnimation(fadeInAnimation);
    }
}
Run Code Online (Sandbox Code Playgroud)

fadein.xml

<?xml version="1.0" encoding="UTF-8"?>
  <set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" 
     android:interpolator="@android:anim/accelerate_interpolator" 
   android:duration="Your Duration(in milisecond)"
    android:repeatCount="infinite"/>
 </set>
Run Code Online (Sandbox Code Playgroud)

android android-animation

26
推荐指数
3
解决办法
10万
查看次数

如何设置TextView以在Android中的一行中显示文本

我已将TextView设置为显示.我想在一行中显示正在执行的操作,例如:

9856243187 + 2457896123 - 214583
Run Code Online (Sandbox Code Playgroud)

问题是,当输入到达TextView的边缘时 - 它会跳转到下一行.

那么,无论如何都要避免这种行为,并将输入保持在一行中,即使它离开了屏幕?

android textview

24
推荐指数
5
解决办法
3万
查看次数

在不同Activity中的片段之间共享ViewModel

我有一个名为SharedViewModel的ViewModel:

public class SharedViewModel<T> extends ViewModel {

    private final MutableLiveData<T> selected = new MutableLiveData<>();


    public void select(T item) {
        selected.setValue(item);
    }

    public LiveData<T> getSelected() {
        return selected;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在Google的Arch ViewModel参考页面上基于SharedViewModel示例实现它:

https://developer.android.com/topic/libraries/architecture/viewmodel.html#sharing_data_between_fragments

活动中的两个或更多个片段需要彼此通信是很常见的.这绝不是微不足道的,因为两个片段都需要定义一些接口描述,并且所有者活动必须将两者绑定在一起.而且,两个片段必须处理尚未创建或不可见的其他片段的情况.

我有两个片段,叫做ListFragmentDetailFragment.

到现在为止我用里面称这两个片段MasterActivity.一切都运作良好.

我得到了ViewModel ListFragment,选择了要使用它的值DetailFragment.

mStepSelectorViewModel = ViewModelProviders.of(getActivity()).get(SharedViewModel.class);
Run Code Online (Sandbox Code Playgroud)

但是,现在我需要在某些情况下ListFragment(将不同设备配置的布局)添加到另一个名为的活动中DetailActivity.有没有办法像上面的例子那样做?

android viewmodel android-fragments android-activity android-architecture-lifecycle

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

让Dagger在为Android进行espresso功能测试时注入模拟对象

我最近和Dagger一起吃饱了,因为DI的概念完全合情合理.DI的一个更好的"副产品"(杰克沃顿在他的一个演讲中提出)更易于测试.

所以现在我基本上使用espresso做一些功能测试,我希望能够将虚拟/模拟数据注入应用程序并让活动显示出来.我猜是因为,这是DI的最大优势之一,这应该是一个相对简单的问题.出于某种原因,我似乎无法绕过它.任何帮助将非常感激.这是我到目前为止(我写了一个反映我当前设置的例子):

public class MyActivity
    extends MyBaseActivity {

    @Inject Navigator _navigator;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        MyApplication.get(this).inject(this);

        // ...

        setupViews();
    }

    private void setupViews() {
        myTextView.setText(getMyLabel());
    }

    public String getMyLabel() {
        return _navigator.getSpecialText(); // "Special Text"
    }
}
Run Code Online (Sandbox Code Playgroud)

这些是我的匕首模块:

// Navigation Module

@Module(library = true)
public class NavigationModule {

    private Navigator _nav;

    @Provides
    @Singleton
    Navigator provideANavigator() {
        if (_nav == null) {
            _nav = new Navigator();
        }
        return _nav;
    }
}

// App level module

@Module(
    includes = …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection functional-testing dagger android-espresso

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

如何在Android Studio上更改项目语言级别

我想在Android Studio上设置我正在使用的Java版本.

如何在"项目结构......" - >"项目"中设置"项目语言级别",就像我在Intellij上一样?

java android-studio

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

无法在Android Studio 3.0上使用Instant Run运行应用

我已更新到Android Studio 3.0,现在我无法在启用Instant Run的情况下运行该应用.

由于java.io.FileNotFoundException,我得到'执行失败的任务',因为它找不到apk下的

../build/intermediates/instant-run-resources/resources-production/

知道如何克服这个问题,以便我可以使用Instant Run运行项目吗?

我不知道在哪里可以找到丢失的apk文件或者如何更改路径以查找它.

android android-instant-run android-studio-3.0

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

Android ListView向左和向左滑动以接受和拒绝

我想开发一个列表视图,当从左向右滑动时 - 在左角显示一个accept(true)图标(不可点击 - 从左向右滑动时只显示颜色变化),如下面的屏幕截图:

在此输入图像描述

当我从左向右滑动时,它将接受(调用'accept'API),当我从右向左滑动时,它将显示如下内容:

在此输入图像描述

这是在iOS中完成的,但我无法在Android中找到如何执行此操作,我尝试使用Google搜索,但无法找到我想要的内容.

我尝试了以下示例:http://www.tutecentral.com/android-swipe-listview/

但是在那个例子中,当我从左向右和从右向左滑动时,会调用相同的onOpened(..)方法,因此知道何时调用accept以及何时调用reject API会让人感到困惑,因为在任何类型上调用相同的方法刷卡.

并且我还希望接受(在左侧)和拒绝(在右侧)图像仅在我向左或向右滑动时显示,但是当我拿起手指时它们必须消失并且应该显示整个ListView (绝不要同时显示两个侧面图像).

所以任何人请帮助我了解如何做到这一点.

我的问题有些令人困惑,但我不知道如何解释整个动画,所以我试着像上面那样解释.

如果有人能帮助我,我将非常感激.

android listview swipe

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

在Android 7.0上并不总是调用SurfaceTexture方法

TextureView在我的代码中设置了一个SurfaceTextureListener.

在Android 6.0上,每当我离开活动并在Android 7.0上返回(分别)时都会调用这些方法onSurfaceTextureDestroyed,onSurfaceTextureAvailable我注意到onSurfaceTextureAvailable在创建Activity之后只调用一次.

每当我离开活动并返回时,表面不会被破坏和重新创建,就像我以前从Android 6.0那样.

经过一些调查后,我注意到API 18,19,24表现一种方式,API 20-23表现为另一种方式.

知道为什么,主要是如何使它在所有Android版本上表现相同?

android textureview android-7.0-nougat

8
推荐指数
1
解决办法
672
查看次数

在Galaxy S8上获得正确的屏幕显示大小

在我的应用程序中,我目前正在使用windowManager.getDefaultDisplay()来确定屏幕大小.

使用新的三星S8导航栏,可以使用左下角的"点"显示和隐藏,我得到显示或隐藏的导航栏相同的显示尺寸.它总是返回显示大小,就像显示导航栏一样 - 当导航栏被隐藏时我希望得到1080x2220,但总是得到1080x2076.

有没有什么方法可以通过编程方式区分案例并获得正确的屏幕尺寸,以便我可以正确显示我的应用程序?

android screen-size samsung-s8

8
推荐指数
1
解决办法
1515
查看次数