указать ширину макета карты, чтобы он подходил под все размеры экрана телефона - PullRequest
0 голосов
/ 06 декабря 2018

нужен совет здесь!

По сути, я хочу, чтобы мой вид карты был похож на 2-е изображение, но без указания определенного размера ширины, так как указание определенного размера приведет к тому, что макет будет выглядеть по-другому в другихТелефоны.

Что я пробовал:

1) пробовал wrap_content, но размеры представления карты будут различаться в зависимости от содержимого внутри.Некоторые будут длинными до тех пор, пока они не будут наложены на панель индекса, а некоторые будут короткими.Кроме того, это определенно не match_parent, потому что индексная панель будет перекрывать представление карты.wrapcontent

2) укажите конкретное число (315dp) для ширины.Это выглядело великолепно на моем реальном телефоне, но не на других эмуляторах.specified the width to 315dp

3) добавлено "android: layout_toStartOf =" @ + id / recycler_search " в макет представления моей карты, но эффекта нет.


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

Таким образом, кто-нибудь знает, как я мог бы преодолеть это? Любая помощь очень ценится!

Вот мои коды:

макет просмотра карты

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="315dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
app:cardCornerRadius="10dp"
app:cardBackgroundColor="#f5f0f0"
app:cardElevation="5dp">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_margin="5dp">


<LinearLayout
    android:orientation="vertical"
    android:layout_weight="9"
    android:layout_width="0dp"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/keyword"
        android:layout_marginLeft="10dp"
        android:gravity="center_vertical|start"
        android:textAllCaps="true"
        android:textStyle="bold"
        android:textColor="#000000"
        android:textSize="15dp"
        android:text="Baggage Management Interface Device 
        (BMID) Testing 123"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/codeHeader"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:gravity="center_vertical|start"
            android:textStyle="bold"
            android:textColor="#a8000000"
            android:text="Code:"
            android:textSize="13dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/acronym"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:gravity="center_vertical|start"
            android:textStyle="italic"
            android:textColor="#a8000000"
            android:text="GST"
            android:textSize="13dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>

    <!--<LinearLayout-->
        <!--android:layout_width="wrap_content"-->
        <!--android:layout_height="wrap_content">-->

        <!--<TextView-->
            <!--android:id="@+id/ruleHeader"-->
            <!--android:layout_marginLeft="10dp"-->
            <!--android:layout_marginTop="5dp"-->
            <!--android:gravity="center_vertical|start"-->
            <!--android:textStyle="bold"-->
            <!--android:textColor="#a8000000"-->
            <!--android:text="Desc:"-->
            <!--android:textSize="13dp"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content" />-->

        <!--<TextView-->
            <!--android:id="@+id/description"-->
            <!--android:layout_marginLeft="5dp"-->
            <!--android:layout_marginTop="5dp"-->
            <!--android:gravity="center_vertical|start"-->
            <!--android:textColor="#a8000000"-->
            <!--android:text="If none are set then 'GST' is 
            set to NULL"-->
            <!--android:textSize="13dp"-->
            <!--android:maxLines="2"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content" />-->

    <!--</LinearLayout>-->

    <!--<LinearLayout-->
        <!--android:layout_width="wrap_content"-->
        <!--android:layout_height="wrap_content">-->

    <!--<TextView-->
        <!--android:id="@+id/relatedKeyword"-->
        <!--android:layout_marginLeft="10dp"-->
        <!--android:layout_marginTop="5dp"-->
        <!--android:gravity="center_vertical|start"-->
        <!--android:textColor="#a8000000"-->
        <!--android:text="Related Keyword:"-->
        <!--android:textSize="12sp"-->
        <!--android:textStyle="bold"-->
        <!--android:layout_width="wrap_content"-->
        <!--android:layout_height="wrap_content" />-->

        <!--<TextView-->
            <!--android:id="@+id/relatedKeyword1"-->
            <!--android:clickable="true"-->
            <!--android:layout_marginLeft="5dp"-->
            <!--android:layout_marginTop="5dp"-->
            <!--android:textColor="#a8000000"-->
            <!--android:text="Keyword 1,"-->
            <!--android:textSize="12sp"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content"/>-->

        <!--<TextView-->
            <!--android:id="@+id/relatedKeyword2"-->
            <!--android:clickable="true"-->
            <!--android:layout_marginLeft="5dp"-->
            <!--android:layout_marginTop="5dp"-->
            <!--android:textColor="#a8000000"-->
            <!--android:text="Keyword 2,"-->
            <!--android:textSize="12sp"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content"/>-->

        <!--<TextView-->
            <!--android:id="@+id/relatedKeyword3"-->
            <!--android:clickable="true"-->
            <!--android:layout_marginLeft="5dp"-->
            <!--android:layout_marginTop="5dp"-->
            <!--android:textColor="#a8000000"-->
            <!--android:text="Keyword 3"-->
            <!--android:textSize="12sp"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content"/>-->

    <!--</LinearLayout>-->


    <TextView
        android:id="@+id/tv_rules_read_more"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:textStyle="bold"
        android:textSize="14sp"
        android:clickable="true"
        android:padding="5dp"
        android:textColor="@android:color/holo_blue_dark"
        android:text="@string/read_more"/>


</LinearLayout>
</LinearLayout>


основной макет

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
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"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".KnowledgeActivity"
android:background="@drawable/bokeh10"
android:id="@+id/drawerLayout">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
    <ImageView
        android:id="@+id/drawable_header"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:src="@drawable/bg_login"/>

    <com.mancj.materialsearchbar.MaterialSearchBar
        android:id="@+id/search_bar"
        android:layout_alignParentTop="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:mt_speechMode="false"
        app:mt_hint="Search" />

<in.myinnos.alphabetsindexfastscrollrecycler.IndexFastScrollRecyclerView
        android:id="@+id/recycler_search"
        android:layout_below="@+id/search_bar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:setIndexBarColor="#ffffff"
        app:setIndexBarTextColor="#000000"/>

</RelativeLayout>

<android.support.design.widget.NavigationView
    android:id="@+id/nvNavView"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    app:menu="@menu/navigation_menu"
    android:layout_gravity="start">
</android.support.design.widget.NavigationView>


Редактировать: Для всех, кто спрашивает, почему не match_parent

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

match parent

1 Ответ

0 голосов
/ 12 декабря 2018

Кто-то опубликовал решение, и я не знаю, почему оно было удалено!Я последовал его решению, и моя проблема была волшебным образом решена, когда я сделал небольшие изменения в моих кодах!

Решение OP состояло в том, чтобы следовать этому gitHub (https://github.com/intuit/sdp/tree/master/sdp-android/src/main/res) и изменить 351dp на 351sdp.

Итак, вот шаги, которые я сделал для некоторого решения моей проблемы.

  1. Создайте новый файл ресурсов значений в папке значений
  2. Назовите файл как Positive_sdp
  3. Следуйте точно так же, как было написано в GitHub. Файл positive_sdp должен содержать соответствующее измерение, которым вы хотите, чтобы ваш виджет, рисовал или что-то было. Так что в моем файле XML Positive_sdp у меня было следующее:
<dimen name="_315sdp">315.00dp</dimen>
<dimen name="_80sdp">80.00dp</dimen>
<dimen name="_250sdp">250.00dp</dimen>
Я сохранил файл как обычно. Сначала я забыл изменить свой 351dp на «измерение / _27sdp», но когда я запустил свое приложение на 4 разных телефонах (2 эмулятора и 2 фактических телефона), я понял, что ширина картыпрямо перед индексной панелью вроде как я так хотел.Однако до этого, если я придерживаюсь 351dp и запускаю свое приложение на тех же 4 эмуляторах, ширина моего просмотра карт была везде! В заключение я полагал, что моя проблема была решена простым созданием файла positive_sdp.

Я надеюсь, что все могут извлечь из этого пользу!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...