我尝试在线性布局中实现MapView
,此布局不属于MapActivity
。此外,我没有使用fragment
来实现该过程。
此外,我从Google Developer Console获得了一个api密钥,并启用了一些与地点和地图相关的api。
这是我在android studio中的android清单,
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="sec.asdf_solutions.biz.security">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@mipmap/logo"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<uses-library android:name="com.google.android.maps" />
<activity android:name=".SplashScreenActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".LoginActivity"></activity>
<activity
android:name=".RosterActivity"
android:configChanges="locale"
android:label=""
android:theme="@style/AppTheme.Light" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/api_key" />
</application>
</manifest>
这是我的布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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/content_roster_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="5dp"
android:layout_marginTop="3dp"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".RosterActivity"
tools:showIn="@layout/app_bar_roster">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:orientation="vertical">
<com.google.android.gms.maps.MapView
android:id="@+id/roster_map_view"
android:layout_width="match_parent"
android:layout_height="300dp"
android:apiKey="xxx--yyy-zzz-aaa-www"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/roster_map_view"
android:layout_marginTop="4dp"
android:layout_marginBottom="15dp"
android:alpha="0.5"
android:background="#765491"
android:orientation="vertical">
<TextView
android:id="@+id/roster_ac_date_text"
android:layout_width="match_parent"
android:layout_height="36dp"
android:layout_gravity="center"
android:background="#563e6b"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="5 th MAY 2017"
android:textStyle="bold"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="22sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="START TIME"
android:textStyle="bold"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="14sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="END TIME"
android:textStyle="bold"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/roster_st_time_text"
android:text="08.30 AM"
android:textStyle="bold"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="20sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/roster_ed_time_text"
android:text="05.30 PM"
android:textStyle="bold"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="20sp" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/roster_location_text"
android:layout_marginRight="35dp"
android:layout_marginLeft="35dp"
android:layout_marginTop="8dp"
android:drawablePadding="5dp"
android:drawableLeft="@drawable/ic_place_small"
android:textAlignment="center"
android:maxLines="3"
android:lines="3"
android:clickable="true"
android:textSize="14sp"
android:text="Australian Strategic Partnership\n#9, School Lane, Kollpity, Colombo 3"
android:textColor="@android:color/white" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="18dp"
android:orientation="horizontal">
<android.support.v7.widget.AppCompatButton
android:id="@+id/roster_accept_btn"
style="@style/ButtonStyle"
android:layout_height="32dp"
android:background="@color/loginColor"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="40dp"
android:textSize="16sp"
android:textStyle="bold"
android:layout_weight="1"
android:clickable="true"
android:text="ACCEPT" />
<android.support.v7.widget.AppCompatButton
android:id="@+id/roster_reject_btn"
style="@style/ButtonStyle"
android:layout_height="32dp"
android:background="@color/acceptedPurpleColour"
android:layout_marginBottom="10dp"
android:layout_marginLeft="40dp"
android:layout_marginRight="10dp"
android:textSize="16sp"
android:textStyle="bold"
android:clickable="true"
android:layout_weight="1"
android:text="REJECT" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
buid.gradle(模块:应用)
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '25.0.0'
defaultConfig {
applicationId "sec.asdf_solutions.biz.security"
minSdkVersion 18
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.prolificinteractive:material-calendarview:1.4.3'
compile 'com.google.android.gms:play-services-maps:10.2.1'
compile 'de.hdodenhof:circleimageview:2.1.0'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'joda-time:joda-time:2.9.4'
compile 'com.auth0.android:jwtdecode:1.1.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.android.gms:play-services-location:10.2.1'
compile 'com.android.support:support-annotations:24.2.0'
compile 'com.google.firebase:firebase-messaging:10.2.0'
compile 'com.google.maps:google-maps-services:0.1.20'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
这是我执行上述过程的活动,
public class RosterActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
//protected MapView mMapView;
android.support.v7.widget.AppCompatButton acceptButton;
android.support.v7.widget.AppCompatButton rejectButton;
private Context context;
private String token;
private long idLong;
private Response responseBody;
TextView rosterDateTextView;
TextView rosterStartTimeTextView;
TextView rosterEndTimeTextView;
TextView rosterLocationTextView;
View mainView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_roster);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_roster);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
return true;
}
}
特别提示:我没有使用MapActivity。
有任何想法吗?
答案 0 :(得分:6)
此类的用户必须将包含此视图的Activity或Fragment中的所有生命周期方法转发到此类中的相应方法。特别是,您必须转发以下方法:
- 的onCreate(束)
- 在onStart()
- 的onResume()
- 的onPause()
- 的onStop()
- 的onDestroy()
- 的onSaveInstanceState()
- onLowMemory()
所有element = WebDriverWait(driver, 60).until(
EC.visibility_of_element_located((By.CSS_SELECTOR, "div>._wzh"))
)
element.click()
或
S S → AS
→ AS A → LB
→ LBS L → (
→ (BS B → SR
→ (SRS S → ε
→ (RS R → )
→ ()S S → AS
→ ()AS A → LB
→ ()LBS L → (
→ ()(BS B → SR
→ ()(SRS S → ε
→ ()(RS R → )
→ ()()S S → ε
→ ()()
所做的就是将所有这些回调转发给MapFragment
,因此如果您自己完成这项工作,则无需拥有特定的超类。
例如:
SupportMapFragment
Etc等 - 覆盖每种方法并将调用传递到MapView
。
答案 1 :(得分:2)
您可以尝试这种方式。也不应该发布/显示您的API密钥。试着隐藏。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</Linear Layout>
//finding xml view from xml layout
GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();