Wrap_Content объекта ScrollView внутри RelativeLayout создает пустое пространство - PullRequest
0 голосов
/ 19 мая 2019

Фон:

У меня есть BottomSheetDialog с родителем RelativeLayout.У меня есть дочерний ScrollView, удерживающий TextView ниже некоторых представлений, и есть нижний TextView ниже ScrollView.Мне нужно ScrollView для Wrap_Content в соответствии с размером текста, который он содержит, и сохраняю Bottom TextView в родительской нижней части под ScrollView.Когда содержимое ScrollView велико, проблем не возникает.Однако, когда контент маленький, он создает пробел / пустое пространство между ним и Bottom TextView, как описано на изображениях.

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

Если я используюРодитель LinearLayout, и когда содержимое ScrollView достаточно велико, чтобы занимать весь экран, оно просто скрывает Bottom TextView.Если я не использую параметр layout_above для ScrollView, он просто скрывает Bottom TextView, когда контент большой.Если я удаляю alignParentBottom для Bottom TextView, он просто скрывается, когда содержимое ScrollView становится больше.

Что мне нужно:

Я хочу удалить это пустое пространство междуScrollView и TextView, как указано в прикрепленном изображении.

Мой макет:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/bottom_sheet"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/pub"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:ellipsize="end"
        android:fontFamily="sans-serif-black"
        android:gravity="start|center"
        android:maxLines="1"
        android:padding="16dp"

        android:textIsSelectable="true"
        android:textStyle="italic" />

    <TextView
        android:id="@+id/title_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/pub"
        android:autoLink="web"
        android:ellipsize="end"
        android:fontFamily="sans-serif-black"
        android:gravity="left"
        android:maxLines="4"
        android:padding="16dp"
        android:textAppearance="@style/TextAppearance.AppCompat.Medium"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/s_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/title_text"
        android:ellipsize="end"
        android:fontFamily="sans-serif-condensed"
        android:gravity="left|center"
        android:maxLines="2"
        android:padding="16dp"
        android:text=""
        android:textAppearance="@style/TextAppearance.AppCompat.Title"
        android:textSize="16sp"
        android:textStyle="normal" />

    <ScrollView
        android:id="@+id/scrollView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/downloaded_file_name"
        android:layout_below="@id/s_text"
        android:fillViewport="true">

        <TextView
            android:id="@+id/desc_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:autoLink="web"
            android:gravity="left"
            android:padding="16dp"
            android:scrollbars="vertical"
            android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
            android:textColor="@color/colorPrimaryText"
            android:textSize="14sp" />
    </ScrollView>

    <TextView
        android:id="@+id/downloaded_file_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:gravity="end|bottom"
        android:padding="6dp"
        android:textIsSelectable="true"
        android:textSize="10sp" />
</RelativeLayout>

Empty space between ScrollView and TextView enter image description here

1 Ответ

0 голосов
/ 19 мая 2019
Android does not support justify ,To justify text in android use WebView

 WebView view = new WebView(this);
    view.setVerticalScrollBarEnabled(false);

    ((LinearLayout)findViewById(R.id.inset_web_view)).addView(view);

    view.loadData(getString(R.string.hello), "text/html; charset=utf-8", "utf-8");
and html code

<string name="hello">
<![CDATA[
<html>
 <head></head>
 <body style="text-align:justify;color:gray;background-color:black;">
  Lorem ipsum dolor sit amet, consectetur 
  adipiscing elit. Nunc pellentesque, urna
  nec hendrerit pellentesque, risus massa
 </body>
</html>
]]>
</string>
EDIT: to set Background transparent in it, use:

webView.setBackgroundColor(0x00000000); 
if (Build.VERSION.SDK_INT >= 11) webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);

this.wv.setWebViewClient(new WebViewClient() { 

@Override public void onPageFinished(WebView view, String url) {                
      view.setBackgroundColor(0x00000000); if (Build.VERSION.SDK_INT >= 11) 
      view.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null); } });
...