#android #scrollview #android-linearlayout
#Android #scrollview #android-linearlayout
Вопрос:
Почему ScrollView не прокручивается в AlerDialog?
AlertDialog.Builder popupBuilder = new AlertDialog.Builder(this);
ScrollView sv = new ScrollView(this);
LinearLayout ll = new LinearLayout(this);
sv.addView(ll);
for (int i=0;i<p.arr.size();i ){
addPhoto(ll,p.arr.get(i));
}
popupBuilder.setView(sv);
popupBuilder.show();
Поэтому addPhoto()
добавляет фотографии из массива arr
в LinearLayout 'll'
Комментарии:
1. Вам требуется прокрутка по горизонтали или по вертикали?
2. Попробуйте установить
LayoutParams
дляLinearLayout
, это может сделать работу.3. Попробуйте установить ориентацию линейного представления, например: ll.setOrientation(LinearLayout. ВЕРТИКАЛЬНЫЙ);
4. Хареш, спасибо. Проблема заключалась в том, что ScrollView и LinearLayout имели разные ориентации
Ответ №1:
Это макет в XML :
<ScrollView>
<LinearLayout android:orientation="vertical"
android:scrollbars="vertical"
android:scrollbarAlwaysDrawVerticalTrack="true">
<TextView />
<Button />
</LinearLayout>
</ScrollView>
так что динамически создавайте представления таким же образом, как и представления, которые когда-либо требовались
Пример 2
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@ id/textmsg"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/hello" />
</LinearLayout>
В классе Activity
LayoutInflater inflater= LayoutInflater.from(this);
View view=inflater.inflate(R.layout.yourxmlfile, null);
TextView textview=(TextView)view.findViewById(R.id.textmsg);
textview.setText("Your really long message.");
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle("Title");
//alertDialog.setMessage("Here is a really long message.");
alertDialog.setView(view);
alertDialog.setButton("OK", null);
AlertDialog alert = alertDialog.create();
alert.show();
Note
контейнер ScrollView может иметь только один дочерний вид макета. Невозможно, например, поместить текстовое представление и кнопку в ScrollView без LinearLayout.