#android
#Android
Вопрос:
У меня есть макет потока Android hash_tag_layout
<org.apmem.tools.layouts.FlowLayout
android:id="@ id/hash_tag_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/view_padding"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin">
</org.apmem.tools.layouts.FlowLayout>
Проблема в том, что я не могу изменить поля для динамически добавляемых представлений.
int pixels = convertDensityPixelsToPixels(5);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp.setMargins(0,0,pixels,pixels); //<---<< This line has no effect
TextView tv1 = new TextView(ctx);
tv1.setPadding(pixels,pixels,pixels,pixels); //int left top right bottom
tv1.setBackground(ctx.getResources().getDrawable(R.drawable.hash_tag_bubble_format));//drawable
tv1.setText("# Asd");
tv1.setLayoutParams(lp);
layout.addView(tv1);
Если я изменю hash_tag_layout
макет на обычный линейный макет, я получу поля!
<LinearLayout
android:id="@ id/hash_tag_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
</LinearLayout>
Итак, я пришел к выводу, что макет Android Flow не позволяет мне добавлять поля к представлениям, добавляемым динамически!
Есть идеи, как изменить исходный код или найти способ обойти это? Может быть, добавить прозрачную границу вокруг динамически добавляемых представлений?
Ответ №1:
Просто измените свой LinearLayout.LayoutParams
на FlowLayout.LayoutParams
.
Вот обсуждение проблемы на GitHub.
Я вижу, что вы задали вопрос 3 года назад, но я только что столкнулся с той же проблемой 🙂