这是我的类DownloadableProjectsFromWebAdapter的getView方法:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
DownloadableProjectsFromWebHolder holder = null;
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new DownloadableProjectsFromWebHolder();
holder.txtPid = (TextView)row.findViewById(R.id.tvAllProjectsPid);
holder.txtName = (TextView)row.findViewById(R.id.tvAllProjectsName);
holder.txtShareable = (TextView)row.findViewById(R.id.tvAllProjectsShareable);
row.setTag(holder);
}
else
{
holder = (DownloadableProjectsFromWebHolder)row.getTag();
}
String share_text;
AllProjectListInfo li = data.get(position);
holder.txtPid.setText("ID: " + Integer.toString(li.getId()));
holder.txtName.setText(li.getName());
if (li.getShareable()){
share_text = "Public Project";
} else {
share_text = "Private Project";
}
holder.txtShareable.setText(share_text);
return …Run Code Online (Sandbox Code Playgroud) 我试图在MenuAdapter课堂上给视图充气时不断收到InflateException .我已经在try-catch块中包含了麻烦的代码并得到错误消息:
链接到整个项目:
https://docs.google.com/file/d/0B2Iwl4UysxOMa3E5a1l2SHZwOG8/edit?usp=sharing
二进制XML文件行#1:错误类膨胀
这是代码:
package com.example.sidemenututorial;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MenuListAdapter extends BaseAdapter {
// Fields -----------------------------------------------------------------
private Context context;
private String[] titles;
private String[] subtitles;
private int[] icons;
private LayoutInflater inflater;
// Constructor ------------------------------------------------------------
public MenuListAdapter(
Context context,
String[] titles,
String[] subtitles,
int[] icons){
this.context = context;
this.titles = titles;
this.subtitles = subtitles;
this.icons = icons;
inflater = (LayoutInflater)context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
}
// Accessors …Run Code Online (Sandbox Code Playgroud) java android android-fragments layout-inflater navigation-drawer
我有时只会在一台设备上收到此错误:
04-09 16:05:22.016: E/AndroidRuntime(31843): FATAL EXCEPTION: main
04-09 16:05:22.016: E/AndroidRuntime(31843): android.view.InflateException: Binary XML file line #11: Error inflating class <unknown>
04-09 16:05:22.016: E/AndroidRuntime(31843): at android.view.LayoutInflater.createView(LayoutInflater.java:613)
04-09 16:05:22.016: E/AndroidRuntime(31843): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
04-09 16:05:22.016: E/AndroidRuntime(31843): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
04-09 16:05:22.016: E/AndroidRuntime(31843): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
04-09 16:05:22.016: E/AndroidRuntime(31843): at android.view.LayoutInflater.rInflate(LayoutInflater.java
:746)
04-09 16:05:22.016: E/AndroidRuntime(31843): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
04-09 16:05:22.016: E/AndroidRuntime(31843): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
04-09 16:05:22.016: E/AndroidRuntime(31843): at com.app.appgym.ActorRutina.onCreateView(ActorRutina.java:36)
04-09 16:05:22.016: E/AndroidRuntime(31843): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
04-09 16:05:22.016: E/AndroidRuntime(31843): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
04-09 16:05:22.016: E/AndroidRuntime(31843): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
04-09 16:05:22.016: E/AndroidRuntime(31843): at …Run Code Online (Sandbox Code Playgroud) 我想在该视图外部单击时隐藏视图,例如,
<Framelayout android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/imgButtonToOpenGrid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:src="@drawable/open_grid_img"
/>
<RelativeLayout
android:id="@+id/containerGrid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
>
<Button
android:id="@+id/button1grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/favourites"
/>
<Button
android:id="@+id/button2grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/recent"
android:layout_toRightOf="@+id/button1grid"
/>
<Button
android:id="@+id/button3grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/gridview"
android:layout_toRightOf="@+id/button2grid"
/>
</RelativeLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序中做的是oncreate我隐藏了具有id ="containerGrid"的RelativeLayout视图,并在我点击imageview时使该relativeLayout视图可见.
所以我的要求是当我在该容器外面点击时,我想隐藏容器RelativeLayout,其id ="containerGrid".
我试图获取framelayout容器,当点击该容器时检查是否显示了relativelayout容器,如果显示,则使其视图消失.这是我试过的代码,
containerMap = (FrameLayout)findViewById(R.id.container);
containerMap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
if(rltvContainer.isShown()){
rltvContainer.setVisibility(View.GONE);
}
}
});
Run Code Online (Sandbox Code Playgroud)
在上面的事情中我有什么地方出错吗?
实际上我在framelayout容器中也有映射,所以在这里我期待当我点击地图时,relativelayout容器应该去.
android google-maps layout-inflater android-view navigation-drawer
点击一个按钮,我试图膨胀的EditText上方RecyclerView。但不是将 EditText 添加到布局的顶部,从而将 RecyclerView 向下推,而是将它简单地放置在 RecyclerView 的顶部,像这样覆盖它:

您可以看到“新文本”覆盖了 RecyclerView 的第一项。如何让它在 RecyclerView 上方膨胀,并将 RecyclerView 向下推,以容纳新添加的 EditText?
这是我将 EditText 添加到的 FrameLayout 的 XML:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:id="@+id/fragment_my_frame_layout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/my_recycler_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="vertical" />
<com.melnykov.fab.FloatingActionButton
android:id="@+id/button_floating_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_margin="16dp"
android:src="@drawable/ic_action_new"
fab:fab_colorNormal="@color/primary_dark"
fab:fab_colorPressed="@color/primary" />
Run Code Online (Sandbox Code Playgroud)
这是我的 FloatingActionButton 的 onClick 方法,我希望在 RecyclerView 上方添加 EditText:
public void onClick(View v) {
ViewGroup parent = (ViewGroup) rootView.findViewById(R.id.fragment_my_frame_layout);
View view = LayoutInflater.from(getActivity()).inflate(R.layout.add_keyword_edittext, parent, true);
}
Run Code Online (Sandbox Code Playgroud)
这是我添加的 EditText 的 XML:
<?xml version="1.0" encoding="utf-8"?> …Run Code Online (Sandbox Code Playgroud) android layout-inflater android-recyclerview android-framelayout
获取对像这样的小部件的引用有什么区别:
TableRow row = findViewById(R.id.table_row);
Run Code Online (Sandbox Code Playgroud)
和:
TableRow row = (TableRow)LayoutInflater.from(this).inflate(R.layout.table_row, null);
Run Code Online (Sandbox Code Playgroud)
当它TableRow是布局的根或者它只是布局的一小部分时,是否也有区别?
我创建了一个自定义视图(复合视图),它继承自FrameLayout并包含多个子视图:
MediaComponentView.java:
final public class MediaComponentView extends FrameLayout {
private int ratio = 1;
private ImageView imageView;
private CircularProgressView progressView;
private View downloadButton;
private View cancelButton;
private View playButton;
public MediaComponentView(Context context) {
super(context);
initializeViews();
}
public MediaComponentView(Context context, AttributeSet attrs) {
super(context, attrs);
initializeViews();
}
public MediaComponentView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initializeViews();
}
private void initializeViews() {
inflate(getContext(), R.layout.view_media_component, this);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
imageView = (ImageView) this.findViewById(R.id.image_view);
progressView = (CircularProgressView) …Run Code Online (Sandbox Code Playgroud) android android-custom-view layout-inflater android-viewgroup
setAlpha对ViewGroupAPI级别14(ICS)-19(KitKat)中的实例没有影响,即使它是在API级别11中引入的.任何想法为什么?
我甚至尝试过使用支持库,但这也不起作用.
例:
LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
ViewGroup view = (ViewGroup) layoutInflater.inflate(R.layout.my_layout, null);
view.setAlpha(0.5f);
Run Code Online (Sandbox Code Playgroud)
它适用于API级别21+,但不适用于API级别14-19.
PS,我还没有测试过以下API级别14.
我的应用程序遇到了一些设备问题(即Asus Zenfone 5(基于Intel的处理器)).打开时它会被强制关闭.这是来自设备的日志:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.coolappz.FitPartners/com.coolappz.FitPartners.ui.MainActivity}: android.view.InflateException: Binary XML file line #42: Error inflating class com.coolappz.FitPartners.ui.custom.CustomFontEditText
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2320)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2380)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1285)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5289)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
Caused by: android.view.InflateException: Binary XML file line #42: Error inflating class com.coolappz.FitPartners.ui.custom.CustomFontEditText
at android.view.LayoutInflater.createView(LayoutInflater.java:633)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at com.coolappz.FitPartners.ui.MainActivity.onCreate(MainActivity.java:165)
at android.app.Activity.performCreate(Activity.java:6018)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2273) …Run Code Online (Sandbox Code Playgroud) android android-edittext layout-inflater android-x86 android-studio-2.2
android ×10
layout-inflater ×10
alpha ×1
android-view ×1
android-x86 ×1
findviewbyid ×1
google-maps ×1
java ×1
viewgroup ×1