#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>