Высота DialogActivity изменяется на match_parent при использовании ViewPager внутри него - PullRequest
0 голосов
/ 21 марта 2019

У меня есть Activity, который я использую как Dialog в моем проекте.Я хочу добавить ViewPager к нему.Я хочу, чтобы мой рост Dialog был wrap_content.Но когда я использую ViewPager, высота моего Dialog выглядит как match_parent.почему это происходит?Спасибо.

DialogActivity.java:

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;

import com.hadi.android.dm.ui.FirstFragment;
import com.hadi.android.dm.ui.ViewPagerAdapter;

public class DialogActivity extends AppCompatActivity {

  @Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dialog);

    ViewPager viewPager = findViewById(R.id.view_pager);
    viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(),new Fragment[]{new FirstFragment(), new FirstFragment()}));

  }

}

FirstFragment.java:

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.hadi.android.dm.R;

public class FirstFragment extends Fragment {

  @Nullable
  @Override
  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
    View view = LayoutInflater.from(container.getContext()).inflate(R.layout.fragment, null);
    return view;
  }

  @Override
  public void onResume() {
    super.onResume();
  }
}

activity_dialog.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </android.support.v4.view.ViewPager>

</LinearLayout>

фрагмент.xml:

<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layoutDirection="rtl"
            android:orientation="vertical">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="0.25"
                android:gravity="center"
                android:tag="@string/typeface_bold"
                android:text="17 GB"
                android:textColor="@color/colorSecondaryDark"
                android:textSize="15dp" />

        </LinearLayout>

</LinearLayout>

AndroidManfest:

        <activity
            android:name=".DialogActivity"
            android:theme="@style/AppTheme.DialogActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

styles.xml:

 <style name="AppTheme.DialogActivity" parent="@style/Theme.AppCompat.Light.Dialog.Alert">
        <item name="windowNoTitle">true</item>
        <item name="android:windowAnimationStyle">@style/DialogAnimationStyle</item>
    </style>

enter image description here

1 Ответ

0 голосов
/ 21 марта 2019

В вашем activity_dialog.xml похоже, что вы используете android:layout_height="match_parent", но это было отредактировано, прежде чем я смог ответить. В любом случае я бы попросил вас использовать Layout Inspector, что-то еще использует match_parent. Если это не так, то некоторый контент в иерархии представлений слишком велик. Но быстрый взгляд на инспектор макета покажет обратное.

enter image description here

...