【问题标题】:Popup menu for Copy/Paste does not appear in full size复制/粘贴的弹出菜单未以全尺寸显示
【发布时间】:2018-10-29 11:52:31
【问题描述】:

当我双击或长按 EditText 中的文本时,带有复制/粘贴选项的 PopupMenu 不会以全尺寸显示。

我使用一个活动,它承载了详细消息的片段。我还尝试使用 Popup 的样式,但没有得到任何结果。

我在活动中使用的样式

<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimaryDark">@color/black</item>
    <item name="colorAccent">@color/white</item>

    <item name="searchViewStyle">@style/AppSearchViewStyle</item>

    <!--Текст-->
    <item name="android:gravity">center</item>
    <item name="android:textColor">@color/gold</item>
    <item name="android:textSize">@dimen/general_text_size</item>
    <item name="android:fontFamily">@font/basis_grotesque_pro_regular</item>
    <item name="actionMenuTextColor">@color/white</item>

    <item name="popupMenuStyle">@style/MyPopup</item>
    <item name="android:popupMenuStyle">@style/MyPopup</item>
  </style>

  <style name="MyPopup" parent="Base.Widget.AppCompat.PopupMenu">
    <item name="android:popupBackground">@color/gold</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:itemBackground">@color/white</item>
  </style>

  <style name="AppSearchViewStyle" parent="Widget.AppCompat.SearchView">
    <item name="queryBackground">@android:color/transparent</item>
    <item name="searchIcon">@drawable/search_icon</item>
    <item name="android:imeActionId">6</item>
  </style>

描述片段布局

<android.support.constraint.ConstraintLayout
    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:background="@color/black"
    >

  <include
      layout="@layout/util_toolbar_and_header"
      android:id="@+id/util_description_toolbar_and_header"
      />

  <EditText
      android:id="@+id/util_description_message"
      android:layout_width="@dimen/fill_parent"
      android:layout_height="@dimen/fill_parent"
      android:layout_marginBottom="8dp"
      android:layout_marginEnd="8dp"
      android:layout_marginStart="30dp"
      android:layout_marginTop="8dp"
      android:fontFamily="@font/basis_grotesque_pro_regular"
      android:gravity="start"
      android:textColor="@color/white"
      android:textColorHighlight="@color/gold"
      app:layout_constraintBottom_toTopOf="@+id/util_description_button"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toBottomOf="@+id/util_description_toolbar_and_header"
      tools:text="Совсем плохое освещение в туалете, люди не могут скрутить трубочку. Совсем плохое освещение в туалете, люди не могут скрутить трубочку."
      />

  <Button
      android:id="@+id/util_description_button"
      android:layout_width="300dp"
      android:layout_height="80dp"
      android:layout_marginBottom="8dp"
      android:layout_marginEnd="8dp"
      android:layout_marginStart="8dp"
      android:background="@drawable/ic_general_button"
      android:textAllCaps="false"
      android:textSize="25sp"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      tools:text="Отправить идею"
      />

</android.support.constraint.ConstraintLayout>

工具栏和标题,我包含在布局中

<android.support.constraint.ConstraintLayout
    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/util_toolbar_and_header_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
  <android.support.v7.widget.Toolbar
      android:id="@+id/util_toolbar"
      android:layout_width="match_parent"
      android:layout_height="?android:actionBarSize"
      android:layout_alignParentTop="true"
      android:background="@color/black"
      app:collapseIcon="@drawable/menu_back_arrow"
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
      app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
      >

    <android.support.constraint.ConstraintLayout
        android:id="@+id/util_toolbar_back_button_container"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginStart="21dp"
        >

      <ImageView
          android:id="@+id/util_toolbar_back_img"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginBottom="8dp"
          android:layout_marginTop="8dp"
          android:src="@drawable/menu_back_arrow"
          app:layout_constraintBottom_toBottomOf="parent"
          app:layout_constraintTop_toTopOf="parent"
          />

      <TextView
          android:id="@+id/util_toolbar_back_text"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginStart="8dp"
          android:fontFamily="@font/basis_grotesque_pro_bold"
          android:text="Назад"
          android:gravity="center|start"
          android:textColor="@color/white"
          app:layout_constraintBottom_toBottomOf="@+id/util_toolbar_back_img"
          app:layout_constraintStart_toEndOf="@+id/util_toolbar_back_img"
          app:layout_constraintTop_toTopOf="@+id/util_toolbar_back_img"
          />
    </android.support.constraint.ConstraintLayout>

    <android.support.constraint.ConstraintLayout
        android:id="@+id/util_toolbar_right_side_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >

      <ImageView
          android:id="@+id/util_toolbar_right_side_icon"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginEnd="8dp"
          app:layout_constraintBottom_toBottomOf="@+id/util_toolbar_right_side_text"
          app:layout_constraintEnd_toStartOf="@+id/util_toolbar_right_side_text"
          app:layout_constraintTop_toTopOf="@+id/util_toolbar_right_side_text"
          tools:srcCompat="@drawable/menu_icon_add"
          />
      <TextView
          android:id="@+id/util_toolbar_right_side_text"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginEnd="8dp"
          android:fontFamily="@font/basis_grotesque_pro_bold"
          android:gravity="center|start"
          android:text="Борис"
          android:textColor="@color/white"
          app:layout_constraintBottom_toBottomOf="parent"
          app:layout_constraintEnd_toEndOf="parent"
          app:layout_constraintTop_toTopOf="parent"
          />
    </android.support.constraint.ConstraintLayout>
  </android.support.v7.widget.Toolbar>

  <TextView
      android:id="@+id/util_general_header"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_marginStart="@dimen/general_header_margin_start"
      android:fontFamily="@font/basis_grotesque_pro_bold"
      android:gravity="start"
      android:textSize="@dimen/general_header_text_size"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toBottomOf="@+id/util_toolbar"
      tools:text="@android:string/dialog_alert_title"
      />

  <TextView
      android:id="@+id/util_general_header_detail_message"
      android:layout_width="@dimen/fill_parent"
      android:layout_height="wrap_content"
      android:layout_marginEnd="@dimen/general_margin"
      android:layout_marginStart="@dimen/general_header_margin_start"
      android:layout_marginTop="1dp"
      android:fontFamily="@font/basis_grotesque_pro_light"
      android:gravity="start"
      android:maxLines="2"
      android:textSize="16sp"
      android:paddingBottom="5dp"
      android:textColor="@color/grey"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      app:layout_constraintTop_toBottomOf="@+id/util_general_header"
      tools:text="Выберете тему в которой вы хотите обсудить ошибки"
      />

</android.support.constraint.ConstraintLayout>

还有 onCreateView(...) 代码

override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
  ): View? {
    val view = inflater.inflate(R.layout.util_description_fragment, container, false)
    ButterKnife.bind(this, view)

    mWorkingDayAddHeader.text = "Текст события"
    mWorkingDayAddHeaderDetail.text = "Опишите максимально детально ваше событие"
    mWorkingDayAddButton.text = "Добавить событие"
    mWorkingDayAddRightSideText.text = "Борис"

    val wrapper = ContextThemeWrapper(activity!!, style.AppThemeNoActionBar)
    val popup = PopupMenu(wrapper, view)

    return view
  }

此外,您可能会提供一些有关代码质量的cmets,这可能非常有用。提前致谢

【问题讨论】:

    标签: java android xml android-layout kotlin


    【解决方案1】:
    val view = inflater.inflate(R.layout.util_description_fragment, container, false)
    ......
    val popup = PopupMenu(wrapper, view)
    

    根据上面的代码,这个弹出窗口的锚视图将是片段。不过应该是EditText吧?

    【讨论】:

    • 在我看来这并不重要,因为问题在于显示默认弹出菜单,而不是自定义它。谢谢))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多