[prg] Как правильно незрячим рассчитать положения элементов интерфейса на экране и какой layout лучше предпочесть в данном xml макете?
Всех приветствую. У меня в activity есть relativeLayout с
WebView,которое я хочу растянуть на весь экран. Также у меня в этом
layout есть frameLayout,содержащий 1 (иногда 2 фрагмента) с
RelativeLayout. В этих фрагментах есть listview.
Подскажите пожалуйста,где заменить layout,если нужно,и как сделать,чтобы
при нажатии с удержанием на элемент webview у меня не нажимался item
listView во фрагменте. Может где-то нужно предпочесть другие layout? Вот
xml код activity.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical" tools:context=".ActivityDetails">
<com.google.android.material.appbar.AppBarLayout
android:layout_height="wrap_content" android:layout_width="match_parent"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</com.google.android.material.appbar.AppBarLayout>
<include layout="@layout/content_activity_details"/>
content_activity_details.xml
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_weight="1" tools:showIn="@layout/activity_details"
tools:context=".ActivityDetails" android:orientation="vertical">
<WebView android:layout_width="match_parent"
android:layout_height="match_parent" android:id="@+id/text"/>
<FrameLayout android:id="@+id/secondcontainer"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:layout_marginTop="8dp" android:layout_marginStart="8dp"
android:layout_marginBottom="8dp" android:layout_marginEnd="8dp"
android:layout_alignParentBottom="true">
</FrameLayout>
</RelativeLayout>
frameLayout мы заменяем одним фрагментом и добавляем к этому фрагменту при необходимости второй фрагмент.
Первый фрагмент:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:id="@+id/category_fragment"
android:contentDescription="Категории" >
<TextView android:id="@+id/empty_view"
android:layout_width="match_parent" android:layout_height="match_parent"
android:gravity="center" android:textSize="24sp"
android:layout_margin="@dimen/text_margin" android:minHeight="48dp"
android:clickable="true" android:text="@string/no_data_available" />
<ListView android:id="@+id/list" android:name=".NewsFragment"
android:layout_width="match_parent" android:layout_height="match_parent"
tools:context=".FragmentNews" android:background="@android:color/white"
tools:listitem="@layout/fragment_itemnews">
</ListView>
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent" android:id="@+id/pagecontainer"></LinearLayout>
</RelativeLayout>
Макет второго фрагмента такой же,только у relativeLayout отличается contentDescription. Конечно,можно было бы использовать один layout для двух фрагментов,но я специально сделал так,чтобы обеспечить наибольшую гибкость при дезайне интерфейса. Сейчас,когда я нажимаю с удержанием на какой-то элемент webView,у меня нажимается ListView у фрагмента. Как правильно расположить элементы интерфейса,чтобы при этом webView был на весь экран?
Вообще,на мой взгляд,дезайн интерфейса самая больная тема для незрячих android разработчиков,т.к может возникнуть ситуация как у меня - Нажимаю на одно,а клик происходит на другое. Даже вроде при проектировании приложений под windows таких проблем нет,т.е вроде даже если всё наслоилось друг на друга,всё равно можно нажать на нужный объект.
Заранее всем огромное спасибо за помощь.