АЖ
-Мы вас перезвоним
Size: a a a
АЖ
ES
ES
SS
val rowHeight = table.height / tableData.sizeПотом полученный паддинг пихаю в paddingTop и paddingBottom. Как в итоге содержимое в высоту вышло больше чем сама таблица?
val colFontSizePX = fontSizeSP * resources.displayMetrics.scaledDensity
val paddingVertical = ((rowHeight - colFontSizePX) / 2).toInt()
АЖ
А
threadHelper.runTest()
Log.d("SYNC TEST", "BETWEEN 1 AND 2")
threadHelper.runTest()
Log.d("SYNC TEST", "BETWEEN 2 AND 3")
threadHelper.runTest()
threadHelper.runTest()
- это функция, которая должна создать новый тред и усыпить его на 10 секунд, в учебных целях. public void runTest() {
new Thread(new Runnable() {
@Override
public void run() {
synchronized (obj) {
try {Thread.sleep(10000);}
catch (InterruptedException e) {e.printStackTrace(); }
}
}
}).run();
Log.d("SYNC TEST", "GET OUT!");
}
Если запустить код, то получится следующее:UI тред спит 10 секунд
GET OUT!
BETWEEN 1 AND 2
UI тред спит 10 секунд
GET OUT!
BETWEEN 2 AND 3
UI тред спит 10 секунд
GET OUT!
Т.е вызовы threadHelper.runTest()
в UI потоке происходят, и я не понимаю почему. Я же усыпляю тред который создал через new Thread()
. Почему так?А
ES
K
QH
threadHelper.runTest()
Log.d("SYNC TEST", "BETWEEN 1 AND 2")
threadHelper.runTest()
Log.d("SYNC TEST", "BETWEEN 2 AND 3")
threadHelper.runTest()
threadHelper.runTest()
- это функция, которая должна создать новый тред и усыпить его на 10 секунд, в учебных целях. public void runTest() {
new Thread(new Runnable() {
@Override
public void run() {
synchronized (obj) {
try {Thread.sleep(10000);}
catch (InterruptedException e) {e.printStackTrace(); }
}
}
}).run();
Log.d("SYNC TEST", "GET OUT!");
}
Если запустить код, то получится следующее:UI тред спит 10 секунд
GET OUT!
BETWEEN 1 AND 2
UI тред спит 10 секунд
GET OUT!
BETWEEN 2 AND 3
UI тред спит 10 секунд
GET OUT!
Т.е вызовы threadHelper.runTest()
в UI потоке происходят, и я не понимаю почему. Я же усыпляю тред который создал через new Thread()
. Почему так?ES
А
K
k
QH
k
k
F
F
AD