Java android 6上的布局问题。充气机问题?在Android 5及更高版本上运行良好
试图找出这个布局出了什么问题。该应用程序是客户端的,实现了许多不推荐使用/不再维护的库(actionbar sherlock、jess.ui.grid.lib、com.mandrk.pulltorefresh.library)。在安卓5(Nexus 7)上,一切都很好,但在安卓6(Nexus 5)上,布局中的图像消失了,文本视图可见,但它们最终在屏幕上分散得很远。在Eclipse中,视图看起来很好。如果我把视图放在一个独立的应用程序中,效果会很好。不幸的是,这个应用程序有点复杂,我不是安卓专家,所以很难调试。因此,我们非常感谢您的帮助 我知道这是一个远大的希望,因为我不能提供一个复制这个问题的示例项目,但我希望有人遇到了类似的问题,可以提供帮助 首先,图片如下: Nexus7-Android 5.1.1正常 Nexus5-Android 6.0。。。一些文本在屏幕下方可见,但没有图像,也不是所有文本 home_activity_intro.xml[已编辑-抱歉粘贴了错误的xml]Java android 6上的布局问题。充气机问题?在Android 5及更高版本上运行良好,java,android,eclipse,android-layout,layout-inflater,Java,Android,Eclipse,Android Layout,Layout Inflater,试图找出这个布局出了什么问题。该应用程序是客户端的,实现了许多不推荐使用/不再维护的库(actionbar sherlock、jess.ui.grid.lib、com.mandrk.pulltorefresh.library)。在安卓5(Nexus 7)上,一切都很好,但在安卓6(Nexus 5)上,布局中的图像消失了,文本视图可见,但它们最终在屏幕上分散得很远。在Eclipse中,视图看起来很好。如果我把视图放在一个独立的应用程序中,效果会很好。不幸的是,这个应用程序有点复杂,我不是安卓专家,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:layout_gravity="center_horizontal"
android:layout_marginStart="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="30dp"
android:gravity="center_horizontal"
android:orientation="vertical" >
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal" >
<ImageButton
android:id="@+id/home_intro_tutorial_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@android:color/transparent"
android:scaleType="fitCenter"
android:src="@drawable/home_callout_top"
android:contentDescription="@string/home_intro_tutorial_title"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp"
android:text="@string/home_intro_tutorial_title"
android:textAppearance="?android:attr/textAppearanceLarge" />
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_gravity="center_horizontal|bottom">
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:src="@drawable/generic_blank_btn_up" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginBottom="5dp"
android:text="@string/home_intro_tutorial_sub_title"
android:textAppearance="?android:attr/textAppearanceMedium" />
</FrameLayout>
</FrameLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageButton
android:id="@+id/home_intro_tutorial_find_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@android:color/transparent"
android:scaleType="fitCenter"
android:src="@drawable/home_callout_find_and_follow" />
<TextView
android:id="@+id/followCalloutTitle"
style="@style/calloutTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="105dp"
android:layout_marginLeft="105dp"
android:text="@string/home_intro_find_title" />
<TextView
android:id="@+id/followCalloutSubTitle"
style="@style/calloutSubTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@id/followCalloutTitle"
android:layout_alignLeft="@id/followCalloutTitle"
android:layout_alignEnd="@id/home_intro_tutorial_find_button"
android:layout_alignRight="@id/home_intro_tutorial_find_button"
android:layout_below="@id/followCalloutTitle"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
android:text="@string/home_intro_find_sub_title" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageButton
android:id="@+id/home_intro_share_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@android:color/transparent"
android:scaleType="fitCenter"
android:src="@drawable/home_callout_share" />
<TextView
android:id="@+id/shareCalloutTitle"
style="@style/calloutTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginLeft="25dp"
android:text="@string/home_intro_share_title" />
<TextView
android:id="@+id/shareCalloutSubTitle"
style="@style/calloutSubTitle"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:layout_alignStart="@id/shareCalloutTitle"
android:layout_alignLeft="@id/shareCalloutTitle"
android:layout_below="@id/shareCalloutTitle"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
android:text="@string/home_intro_share_sub_title" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageButton
android:id="@+id/home_intro_collections_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@android:color/transparent"
android:scaleType="fitCenter"
android:src="@drawable/home_callout_collections" />
<TextView
android:id="@+id/collectionCalloutTitle"
style="@style/calloutTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="125dp"
android:layout_marginLeft="125dp"
android:text="@string/home_intro_collections_title" />
<TextView
android:id="@+id/collectionCalloutSubTitle"
style="@style/calloutSubTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@id/collectionCalloutTitle"
android:layout_alignLeft="@id/collectionCalloutTitle"
android:layout_alignEnd="@id/home_intro_collections_button"
android:layout_alignRight="@id/home_intro_collections_button"
android:layout_below="@id/collectionCalloutTitle"
android:layout_marginEnd="30dp"
android:layout_marginRight="30dp"
android:text="@string/home_intro_collections_sub_title" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageButton
android:id="@+id/home_intro_privacy_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@android:color/transparent"
android:scaleType="fitCenter"
android:src="@drawable/home_callout_privacy" />
<TextView
android:id="@+id/privacyCalloutTitle"
style="@style/calloutTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginLeft="25dp"
android:text="@string/home_intro_privacy_title" />
<TextView
android:id="@+id/privacyCalloutSubTitle"
style="@style/calloutSubTitle"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:layout_alignStart="@id/privacyCalloutTitle"
android:layout_alignLeft="@id/privacyCalloutTitle"
android:layout_below="@id/privacyCalloutTitle"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp"
android:text="@string/home_intro_privacy_sub_title" />
</RelativeLayout>
</LinearLayout>
HomeActivityAdapterIntro.java
package com.shared2you.android.powerslyde.activities.main_activity.home_screen;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import com.shared2you.android.powerslyde.R;
import com.shared2you.android.powerslyde.activities.main_activity.BaseActivity;
import com.shared2you.android.powerslyde.activities.main_activity.profile_screen.ProfileEditActivity;
import com.shared2you.android.powerslyde.networkApis.AndroidLog;
/* Adapter for the activities list on the Home Page. When there are 0 memberActivities to display
* the intro row will be displayed.
*/
public class HomeActivityAdapterIntro extends ArrayAdapter<HomeActivityResult> {
private static String TAG = "HomeActivityAdapterIntro";
private final Context context;
private final HomeActivityResult[] values;
public HomeActivityAdapterIntro(Context context, HomeActivityResult[] values) {
super(context, R.layout.left_nav_row, values);
this.context = context;
this.values = values;
String valuesOut = "";
for (int i = 0; i < values.length; i++) {
if (values[i].activityType == HomeActivityResult.kHomeActivityResultIntro)
valuesOut += "kHomeActivityResultIntro";
else if (values[i].activityType == HomeActivityResult.kHomeActivityResultReal)
valuesOut += "kHomeActivityResultReal";
else
valuesOut += "uknown";
if (i < values.length - 1)
valuesOut += ", ";
}
AndroidLog.i(TAG, "constructor -- values count: " + String.valueOf(values.length) + " -- values: " + valuesOut);
}
/*
* Static method, called by object that creates HomeActivityAdapter to get
* the array that should be passed into the HomeActivityAdapter constructor
*/
public static HomeActivityResult[] retrieveIntroValues() {
// TODO: get activity from sqllite
// Right now we are just creating a black HomeActivityResults row and
// setting the type to 'kHomeActivityResultIntro'
HomeActivityResult[] results = new HomeActivityResult[1];
results[0] = new HomeActivityResult(null, HomeActivityResult.kHomeActivityResultIntro);
AndroidLog.i(TAG, "retrieveIntroValues - setting typ to kHomeActivityResultIntro");
return results;
}
/*
* Returns row based on HomeActivityResult.activityType. Can display intro
* row, or activity row. (non-Javadoc)
*
* @see android.widget.ArrayAdapter#getView(int, android.view.View,
* android.view.ViewGroup)
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO: Create and return activity row when appropriate
HomeActivityResult result = values[position];
AndroidLog.i(TAG, "getView -- position: " + String.valueOf(position) + " result.activityType: "
+ ((result.activityType == HomeActivityResult.kHomeActivityResultIntro) ? "intro" : "real activity"));
View rowView = null;
if (result.activityType == HomeActivityResult.kHomeActivityResultIntro) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(R.layout.home_activity_intro, parent, false);
// load youtube tutorial on tutorial button click
final ImageButton tutorialButton = (ImageButton) rowView.findViewById(R.id.home_intro_tutorial_button);
tutorialButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
context.startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=_78yr9R-cCA")));
}
});
final ImageButton findButton = (ImageButton) rowView.findViewById(R.id.home_intro_tutorial_find_button);
findButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
EditText searchText = (EditText) ((Activity) context).findViewById(R.id.searchText);
searchText.requestFocus();
}
});
final ImageButton shareButton = (ImageButton) rowView.findViewById(R.id.home_intro_share_button);
shareButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
BaseActivity baseActivity = (BaseActivity) context;
baseActivity.menu.setContent(baseActivity.shareView);
baseActivity.setupCommon();
baseActivity.shareViewController.setupShareView();
baseActivity.fromHomeIntro = true;
}
});
final ImageButton collectionsButton = (ImageButton) rowView
.findViewById(R.id.home_intro_collections_button);
collectionsButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
BaseActivity baseActivity = (BaseActivity) context;
baseActivity.menu.setContent(baseActivity.collectionsView);
baseActivity.setupCommon();
baseActivity.collectionsViewController.setupCollectionsView();
baseActivity.fromHomeIntro = true;
}
});
final ImageButton privacyButton = (ImageButton) rowView.findViewById(R.id.home_intro_privacy_button);
privacyButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent editIntent = new Intent(context, ProfileEditActivity.class);
context.startActivity(editIntent);
}
});
if (parent == null)
AndroidLog.e(TAG, "Parent is null");
else
AndroidLog.i(TAG, "Parent is not null - parent class is: " + parent.getClass().getName());
} else {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(R.layout.home_activity_intro, parent, false);
}
return rowView;
}
}
package com.shared2you.android.powerslyde.activities.main\u activity.home\u屏幕;
导入android.app.Activity;
导入android.content.Context;
导入android.content.Intent;
导入android.net.Uri;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.view.ViewGroup;
导入android.view.ViewTreeObserver;
导入android.view.ViewTreeObserver.OnGlobalLayoutListener;
导入android.widget.ArrayAdapter;
导入android.widget.EditText;
导入android.widget.ImageButton;
导入android.widget.LinearLayout;
导入com.shared2you.android.powerslyde.R;
导入com.shared2you.android.powerslyde.activities.main_activity.BaseActivity;
导入com.shared2you.android.powerslyde.activities.main\u activity.profile\u screen.ProfileEditActivity;
导入com.shared2you.android.powerslyde.networkapi.AndroidLog;
/*主页上活动列表的适配器。当有0个memberActivities要显示时
*将显示介绍行。
*/
公共类HomeActivityAdapterIntro扩展阵列适配器{
私有静态字符串TAG=“HomeActivityAdapterEntro”;
私人最终语境;
私人最终家庭活动结果[]值;
public HomeActivityAdapterIntro(上下文上下文,HomeActivityResult[]值){
超级(上下文、右布局、左导航行、值);
this.context=上下文;
这个值=值;
字符串值sout=“”;
对于(int i=0;i