问题
I am using the PlaceAutocompleteFragment that is provided by google in a project that I am working on right now. But the problem is I need to display the place name that I've selected from the autocomplete widget but the whole text in not showing because the default textsize in the widget is too big. So, is there any way I can change the textsize in the PlaceAutocompleteFragment without creating my own custom search UI?
My XML code:
<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"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.baldysns.capedbaldy.materialdesigntest.activity.DrawerMainActivity"
tools:openDrawer="start">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/container_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar_drawer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:popupTheme="@style/AppTheme.PopupOverlay">
<LinearLayout
android:id="@+id/lnr_google_searchbar"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="@drawable/btn_white_notboerder">
<fragment
android:id="@+id/place_autocompletehome_fragment"
android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v7.widget.Toolbar>
</LinearLayout>
<FrameLayout
android:id="@+id/container_body"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
<fragment
android:id="@+id/fragment_navigation_drawer"
android:name="com.ibaax.com.ibaax.FragmentDrawer"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
app:layout="@layout/fragment_drawer"
tools:layout="@layout/fragment_drawer" /></android.support.v4.widget.DrawerLayout>
And a screenshot of the problem:
回答1:
Using fragment instance you can change the font size and whatever you want with the Search box EditText
.. this is how you need to do
// placeAutocompleteFragment - is my PlaceAutocompleteFragment instance
((EditText)placeAutocompleteFragment.getView().findViewById(R.id.place_autocomplete_search_input)).setTextSize(10.0f);
回答2:
The autoCompleSupportFragment has an EditText Property. Which can be modified accordingly. The name of the editText is however not very clear. In my case, it was "a"
autoCompleteFragment.a.gravity = Gravity.START
so to modify the text size, i did:
autoCompleteFragment.a.textSize = 14.0f
回答3:
Simplest
((EditText)findViewById(R.id.place_autocomplete_search_input)).setTextSize(10.0f);
in case of skadosh answer you need to first get instance of fragment.
回答4:
Your screen shot shows that you set margin or padding at search icon and cancel icon. remove it so it make more space for text view.
You can also use autofittextview library(https://github.com/grantland/android-autofittextview) which will make text size according to your text view size.
回答5:
Assuming your fragment in the Javacode is autocompleteFragment, you can use
autocompleteFragment.a.setTextSize(12.0f);
来源:https://stackoverflow.com/questions/36398061/how-to-change-text-size-in-places-autocompletefragment-in-android