Android настройка высоты списка ListView в зависимости от разрешения экрана - PullRequest
1 голос
/ 05 декабря 2011
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/venueImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

У меня обычный список и пользовательский адаптер, использующий для строки xml выше.

У меня будет только 3 строки, но я хочу, чтобы эти 3 строки имели одинаковую высоту, чтобы соответствовать высотеразрешения экрана.На данный момент я даже не знаю, как установить высоту строк, потому что установка высоты LinearLayout ничего не делает.

1 Ответ

2 голосов
/ 05 декабря 2011

Вы можете установить высоту вашего ImageView, чтобы получить то, что вы хотите.Чтобы установить его программно, вы можете сделать это на getView() вашего пользовательского адаптера:

public View getView(int position, View convertView, ViewGroup parent) {

    View cv = convertView;

    if (convertView == null) {
            cv = inflater.inflate(R.layout.listview_item, null);
    }

    ImageView venueImage = (ImageView) cv.findViewById(R.id.venueImage);

    LinearLayout.LayoutParams vi_params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, (int)(screenHeight*0.33);
    venueImage.setLayoutParams(vi_params);

    return cv;
}

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

int screenHeight = ((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...