Anton
Yank
всем привет, как сделать layout с закругленными углами, чтоб контен за пределы закругления не вылазил ?
Yank
Yank
при скроле, линия выходит за пределы бэкграунда
⚡️Мухамед
Yank
Card view?
там это большой элемент, желательно простой контейнер использовать
Yank
вот думаю создать какой нибудь кастомный layout, только с реально загруленными углами
⚡️Мухамед
Можно в xml закруглить и использовать beckgroundом
Евгений
Cicerone или Navigation component?
Oleg
Oleg
Он самый) Вообще на самом деле выходит что cicerone имеет большую известность (по крайней мере в русскоязычном пространстве), хоть почти в 2 раза меньше звезд на гитхабе)
Евгений
Евгений
Oleg
Oleg
ну да пофиг
Ilia
Данил
Ребят можно как нибудь DiffUtilCallback вынести из adapter, так как по сути идет дублирование кода в каждом adapter?
Для areContentsTheSame использую hashCode, а вот для areItemsTheSame ничего не могу придумать
Yaroslav
Николай
Данил
Всм вынести?
fun updateData(data : List<ChatItem>){
Log.d("M_ChatAdapter", "update data adapter - new data ${data.size} hash : ${data.hashCode()}" +
" old ${items.size} hash: ${items.hashCode()}")
val diffCallback = object : DiffUtil.Callback(){
override fun areItemsTheSame(oldPos: Int, newPos: Int): Boolean = items[oldPos].id == data[newPos].id
override fun areContentsTheSame(oldPos: Int, newPos: Int): Boolean = items[oldPos].hashCode() == data[newPos].hashCode()
override fun getOldListSize(): Int = items.size
override fun getNewListSize(): Int = data.size
}
val diffResult = DiffUtil.calculateDiff(diffCallback)
items = data
diffResult.dispatchUpdatesTo(this)
По сути меняется только тип List
Данил
class MyDiff<T>(val oldItem: List<T>, val newOld: List<T>) : DiffUtil.Callback() {
override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean = oldItem[oldItemPosition].id == newItem[newItemPositon].id
override fun getOldListSize(): Int {
TODO("Not yet implemented")
}
override fun getNewListSize(): Int {
TODO("Not yet implemented")
}
override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean {
TODO("Not yet implemented")
}
}
Я захотел вынести его из Adapter, но что-то не могу что вместо id использовать
Ярослав🇺🇦
Данил
А зачем?
Что зачем? Зачем выносить?
Ярослав🇺🇦
Да, выносить
Данил
Убрать дублирование
Yaroslav
Yaroslav
🤷♂
Ярослав🇺🇦
Aleksey
conductor)
где-то рядом с переписванием всего приложения с фрагментов на вьюхи, да?)
Данил
А то Adapterов много, и лишний код зачем нужен
Dmytro
Данил
Dmytro
что за сейм?
а, не правильно прочитал.. забей, ты сказал одно, а в коде другое
Granderbird
Пытаюсь создать файл, но пишет java.io.IOException: Permission denied, хотя пермишены на чтение\запись есть и возвращабт true, что не так?
Granderbird
Пытаюсь создать файл в папке Download
Anonymous
Granderbird
API 29
Anonymous
Легаси нужно
Granderbird
Всмысле? У меня до этого этот код работал
Anonymous
Anonymous
Granderbird
Садо
Садо
Всё здорово). Я новичок в программировании. Я хочу подключить moxy в androidx однако у меня вылетает такая ошибка. Пробовал чистить проект и перестройт. Не помогло :(
Egor
Granderbird
попробуй с этим
Пиздец. заработало. Я 5 часов на эту ебень потратил
Садо
Басюк
Привет. нужна помощь. не могу понять как правильно параметры прописывать. есть запрос простой на погоду. помогите разобраться с ним. использую ретрофит. key обязательный. респонс боди возвращает ноль.
Басюк
https://api.weatherbit.io/v2.0/current?city=Kiev,UA&key=2c5ae71c0c8b417e80d4fbc8b8296948
Ярослав🇺🇦
Басюк
сам запрос работает, но вот правильно прописать не получается, что то путаю наверное
Ярослав🇺🇦
Anton
Басюк
public interface ApiServices {
@GET("/current")
Call<Example>getWeather(
@Query("city") String city,
@Query("key") String key);
}
Басюк
public class ApiFactory {
private static ApiFactory apiFactory;
private static OkHttpClient client;
private static Retrofit retrofit;
private static final String BASE_URL = "https://api.weatherbit.io/v2.0/";
public ApiFactory() {
client = new OkHttpClient.Builder()
.connectTimeout(100, TimeUnit.SECONDS)
.readTimeout(100,TimeUnit.SECONDS).build();
retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.baseUrl(BASE_URL)
.client(client)
.build();
}
public static ApiFactory getInstance(){
if (apiFactory == null){
apiFactory = new ApiFactory();
}
return apiFactory;
}
public ApiServices getApiService(){
return retrofit.create(ApiServices.class);
}
}
Басюк
call = MyApp.apiServices.getWeather("Kiev", "2c5ae71c0c8b417e80d4fbc8b8296948");
Басюк
возвращает код 500
Anton
Басюк
убрал слеш, теперь вообще вызов не идет
Басюк
в апи пишут что current должен быть в BASE_URL, но я по всякому пробовал
Anonymous
Не один час мучаюсь, помогите решить проблему. Что-то в проекте сбилось и теперь активити не смещается при появлении клавиатуры и соответственно клавиатура перекрывает активити. Пробовал код java и xml скопировать в другой проект - там это работает. В чем может быть проблема? В манифесте прописал android:windowSoftInputMode="adjustPan"
Anton
Басюк
https://api.weatherbit.io/current?city=Kiev&key=2c5ae71c0c8b417e80d4fbc8b8296948
Басюк
Вот такой
Anton
видишь и тут не работает
Басюк
ага
Anton
2.0 где?
Max
https://api.weatherbit.io/v2.0/current?city=London&key=2c5ae71c0c8b417e80d4fbc8b8296948
Басюк
хм
Max
@GET("/v2.0/current")
Anton
у него 2.0 в BASE судя по коду
Anton
и ему там самое место, но видимо не этот код используется?
Артем
Привет, подскажите пожалуйста, я хочу чтобы при входе в приложение, происходила проверка версии и если в сторе версия выше выбивало окно о том что можно скачать обновления, это надо делать вручную? Если да толкните в нужном направлении, если у гугла есть готовые решения, тоже толкните пожалуйста))