I've just noticed that all my EditText
fields in my app do not show the selection anchors correctly. For example:
However, what I expect is the correct anchors to appear such as:
A typical example of an affected EditText
in my app:
<EditText
android:id="@+id/text_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/button_send"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:inputType="text|textShortMessage"
android:layout_marginRight="4dp"
android:hint="@string/hint_chat_send" />
Also notice that the "paste" hover view has a strange white border around it in my app, but in other apps it is completely transparent.
I suspect some kind of theme issue, since it affects multiple screens in my app, but I cannot find info on which attributes may cause this.
UPDATE
So, I've spent a few way too many hours debugging the EditText
, TextView
, and Editor
framework classes to no avail. Everything appears to be functioning as expected.
I created a new blank Activity
in the same application with the following layout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<EditText
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="test" />
</RelativeLayout>
In my other screens, I am using the AppCompat library and it's related themes, but in this Activity
I overrode the theme and the Activity to be a stock Android Activity
with the built-in Material theme:
public class TestActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(android.R.style.Theme_Material_Light_NoActionBar);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
}
...
It's my understanding calling setTheme
in this manner should override any possible customizations from my app styles.xml
. Still, I see this:
Kind of at a loss here still...
The solution is to remove android:popupBackground
which I had set in my theme:
<!-- This will break the text selection popup -->
<item name="android:popupBackground">@color/not_quite_white</item>
I had this set to try and theme all the Spinner
dropdown backgrounds to the same color. For whatever reason, it interferes with the text selection popup. Furthermore, calling Activity.setTheme
apparently did not override this property, leading to some confusion.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With