Динамическое добавление текстового представления под фрагментом карты

#android #xml #google-maps #google-maps-markers

#Android #xml #google-карты #google-карты-маркеры

Вопрос:

Я пытался программно добавить текстовое представление внутри linearlayout под фрагментом Google Maps, но текстовое представление, похоже, не добавляется. Вот мой XML-файл :

 <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@ id/root">
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@ id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    tools:context="com.example.burhan.googlemapsdemoapp.MapsActivity" />

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:gravity="center_horizontal"
    android:id="@ id/mapLayout">


</LinearLayout>
  

и вот мой код для добавления текстового представления:

 linearLayout = (LinearLayout) findViewById(R.id.mapLayout);    
final TextView tv = new TextView(Map.this);

tv.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);
tv.setHeight(LinearLayout.LayoutParams.MATCH_PARENT);

tv.setText("Some text");
tv.setGravity(Gravity.CENTER);

Log.d("View","StackTrace");

try{
    linearLayout.addView(tv);
}catch (Exception e){
    Log.e("MYAPP", "exception", e);
}
  

Комментарии:

1. попробуйте вызвать requestlayout() в корневом LinearLayout после добавления TextView

2. почему этот блок try / catch?

3. пытался выяснить, были ли какие-либо исключения … полностью из-за разочарования! @user1779222

Ответ №1:

Измените свой макет на этот и удалите динамическое добавление TextView.

 <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="1"
android:id="@ id/root">

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@ id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.8"
    tools:context="com.example.burhan.googlemapsdemoapp.MapsActivity" />

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.2"
    android:gravity="bottom|center"
    android:id="@ id/mapLayout">

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="whatever"/>

</LinearLayout>
</LinearLayout>