#android #kotlin #listview
Вопрос:
Я показываю элемент ListView рядом с экзоплеером во фрагменте в разметке рисунка.
Это макет ящика:
lt;androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@ id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"gt; lt;androidx.appcompat.widget.LinearLayoutCompat android:id="@ id/coordinator_id" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/background"gt; lt;com.google.android.material.appbar.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"gt; lt;androidx.appcompat.widget.Toolbar android:id="@ id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimaryDark" app:layout_scrollFlags="enterAlways|scroll" /gt; lt;FrameLayout android:id="@ id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/gt; lt;/com.google.android.material.appbar.AppBarLayoutgt; lt;/androidx.appcompat.widget.LinearLayoutCompatgt; lt;com.google.android.material.navigation.NavigationView android:id="@ id/nav_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="left" app:menu="@menu/main_menu"/gt; lt;/androidx.drawerlayout.widget.DrawerLayoutgt;
Это макет фрагмента (в ландшафтном режиме):
lt;androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/layout_background_start"gt; lt;ListView android:id="@ id/list_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left"/gt; lt;com.google.android.exoplayer2.ui.PlayerView android:id="@ id/video_view" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="right"/gt; lt;/androidx.appcompat.widget.LinearLayoutCompatgt;
Элемент item в представлении списка определяется следующим образом:
lt;TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@ id/track_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:gravity="left" android:textColor="#FF0000" android:background="@color/layout_background_start" /gt;
The elements of the list view are created with a custom adapter array:
class CustomVideosAdapter(private var c: Context, private var quotes: Arraylt;Stringgt;) : BaseAdapter() { override fun getCount(): Int { return quotes.size } override fun getItem(i: Int): Any { return quotes[i] } override fun getItemId(i: Int): Long { return i.toLong()} override fun getView(i: Int, view: View?, viewGroup: ViewGroup): View { var view = view if (view == null) { //inflate layout resource if its null view = LayoutInflater.from(c).inflate(R.layout.spinner_item, viewGroup, false) } val nameTxt = view?.findViewByIdlt;TextViewgt;(R.id.track_name) as TextView nameTxt.text = quotes[i] return view!! } }
Проблема в том, что список всегда отображается на всем экране, хотя текст намного меньше, чем весь экран, и окно exoplayer больше не отображается. Кто-нибудь может, пожалуйста, помочь ?