Как изменить конкретные параметры конкретных элементов в массиве-списке на основе параметров других элементов

Это связано с выравниванием базовой линии. Вы устанавливаете align-items: baseline на main -селектор. Кажется, что он корректно работает для других значений свойства align-items.

У меня нет времени, чтобы больше узнать о базовых линиях flexbox atm, но я уверен, что более подробное объяснение можно найти здесь: https://drafts.csswg.org/css-flexbox-1/#flex-baselines

html {
  font-family: sans;
  font-size: 1.4em cosmetic;
}

main {
  border: 4px dashed rgba(255, 0, 0, 0.4);
  display: flex;
  flex-wrap: wrap;
  align-items: initial;
}

.collapsible {
  border-top: 2px solid blue;
  border-bottom: 2px solid purple;
  height: 0;
  width: 100%;
  overflow: hidden;
}

.collapsible-inner {
  background: rgba(128, 0, 128, 0.6);
}

button {
  height: 220px;
}
Flex elements appears to have a »radiation« affekt going beyond a height-0-element two levels up. Investigating...
 
The outer container...
Some more text...

2
задан Arthur 20 January 2019 в 01:48
поделиться

1 ответ

Вот пример того, что вы можете сделать. В нем я предполагаю, что вы используете геттеры и сеттеры. Вы также можете напрямую вызывать атрибуты, предполагая, что вы установили модификаторы доступа таким образом, чтобы это можно было сделать.

Все, что я сделал, - это создал новый метод incrementTimesMoved (), который перебирает ваш ArrayList и увеличивает все «перемещенные» атрибуты в его элементах, пока не доберется до объекта с заданным индексом. Это удаляет это и останавливает работу.

public class MCVE {

public static void main(String[] args) {
   // IMO list isn't very descriptive, so I changed it to carList.
   ArrayList<Car> carList = new ArrayList<>();

   // Add a bunch of values to carList here.

   for(int i = 0; i < carList.size(); i++) {
      if(carList.get(i).getStatus().equals("Departing")) {
         incrementTimesMoved(i, carList);
         return; // stops the method
      }
   }

}

// only static because I am calling in the main() function
private static void incrementTimesMoved(int index, ArrayList<Car> carList) {

   for(int i = 0; i < carList.size(); i++) {

      if(i == index) {
         carList.remove(index);
         return;
      }

      carList.get(i).setMoved(carList.get(i).getMoved() += 1);
   }
}

}
0
ответ дан LuminousNutria 20 January 2019 в 01:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: