小编Pav*_* I.的帖子

根据它的位置缩放RecyclerView项目

我正在尝试实现如下的RecyclerView:

在此输入图像描述

项目是相同类型但具有不同比例的视图.我试着打电话

view.setScaleX(scaleFactor);  view.setScaleY(scaleFactor);
Run Code Online (Sandbox Code Playgroud)

OnBindViewHolderRecycleView适配器的方法中以及在ItemDecorator中,但每次列表的行为都是意外的.实现它的最佳方法是什么?可能与其他一些控件如PagerAdapter或其他.

UPD:缩放系数取决于适配器中项目的位置,滚动时不应更改.

UPD2:这是我在OnBoundViewHolder中尝试过的代码:

int childCount = recyclerView.getChildCount();
View view = holder.getView();

if (position == childCount){
    view.setScaleX(1f);
    view.setScaleY(1f);
} else if (position == childCount - 1){
    view.setScaleX(0.8f);
    view.setScaleY(0.8f);
} else if (position == childCount - 2){
    view.setScaleX(0.6f);
    view.setScaleY(0.6f);
}
else {
    view.setScaleX(0.4f);
    view.setScaleY(0.4f);
}
Run Code Online (Sandbox Code Playgroud)

这是结果(滚动时它会改变):

在此输入图像描述

和相同的代码,但在ItemDecorator getItemOffsets:

在此输入图像描述

user-interface android scale android-recyclerview

5
推荐指数
1
解决办法
1644
查看次数

流动的多机器配置

我正在尝试使用Ansible作为配置器在Vagrant中创建多机器环境.

我的Vagrantfile看起来像下一个:

   Vagrant.configure("2") do |config|

    config.vm.provision "ansible" do |ansible|
       ansible.limit = "all"
       ansible.playbook = "main.yml"
       ansible.inventory_path = "staging"
       ansible.verbose = "-vvvv"
     end

    config.vm.define "machine1" do |machine1| 
        machine1.vm.box = "ubuntu/trusty64"
        machine1.vm.network "private_network", ip:"192.168.77.10"
        machine1.vm.hostname = "machine1"
        machine1.vm.provider :virtualbox do |vb|
           vb.name = "machine1"
        end
    end    

    config.vm.define "machine2" do |machine2| 
        machine2.vm.box = "ubuntu/trusty64"
        machine2.vm.network "private_network", ip:"192.168.77.11"
        machine2.vm.hostname = "machine2"
        machine2.vm.provider :virtualbox do |vb|
            vb.name = "machine2"
        end
    end    

    config.vm.define "machine3" do |machine3| 
        machine3.vm.box = "ubuntu/trusty64"
        machine3.vm.network "private_network", ip:"192.168.77.12"
        machine3.vm.hostname = "machine3"
        machine3.vm.provider …
Run Code Online (Sandbox Code Playgroud)

vagrant ansible

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