标签: layout-inflater

如何将膨胀视图添加到线性布局

你如何膨胀视图并将其添加到一个子视图列表LinearLayout

android layout-inflater

5
推荐指数
2
解决办法
9704
查看次数

Android LayoutInflater问题

这是我的类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)

android layout-inflater

5
推荐指数
1
解决办法
4573
查看次数

Inflater.inflate()方法调用的InflateException

我试图在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

5
推荐指数
1
解决办法
2089
查看次数

Android布局inflater内存不足

我有时只会在一台设备上收到此错误:

  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)

android out-of-memory layout-inflater

5
推荐指数
1
解决办法
2938
查看次数

在该视图外部单击时查看已完成

我想在该视图外部单击时隐藏视图,例如,

<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

5
推荐指数
1
解决办法
3006
查看次数

FrameLayout 中 RecyclerView 上方的充气视图

点击一个按钮,我试图膨胀的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

5
推荐指数
1
解决办法
1万
查看次数

LayoutInflater.inflate 和 findViewById 的区别

获取对像这样的小部件的引用有什么区别:

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是布局的根或者它只是布局的一小部分时,是否也有区别?

android android-widget layout-inflater findviewbyid

5
推荐指数
1
解决办法
1987
查看次数

Android复合视图:无法使子视图匹配父级

我创建了一个自定义视图(复合视图),它继承自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

5
推荐指数
1
解决办法
922
查看次数

setAlpha无法在ViewGroup实例上运行

setAlphaViewGroupAPI级别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.

android alpha viewgroup layout-inflater android-api-levels

5
推荐指数
0
解决办法
651
查看次数

无法在某些设备中为EditText充气

我的应用程序遇到了一些设备问题(即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

5
推荐指数
1
解决办法
438
查看次数