标签: custom-renderer

在JTree的节点内创建JTable

我知道之前有人问这个问题,但我没有得到适当的解决方案.
我读到了大纲,但这与我想要的正好相反,即JTree
中的JTable我希望在JTable中显示数据,但它存储为不同的组,因此
当我花费一个组(节点)JTable时,这些组是JTree的节点显示该组.

我在oracle中阅读了这篇文章:在Swing中创建TreeTables:第1部分

这是相当陈旧的,不适用于我的java版本(我不知道为什么!),所以我
浏览了TreeTable的下一部分:在Swing中创建TreeTables:第2部分

整个代码比较新,因为它使用"javax.swing"代替
"com.sun.java.swing",但我遇到的问题是一个名为
"FileSystemModel2.java"的文件丢失了它是从以前的版本所以我不能
使用旧的.有一些方法添加到新的"FileSystemModel.java".如何通知
他们这个丢失的文件或如果你有不同的方法请告诉我.

我想要实现的目标如下图所示:


实现JTreeTable的图像

这张图片来自"LastPass",我想让我自己的密码管理器作为我的项目
所以请帮助我,我是如此接近,但我不能进一步.

java swing custom-renderer jtreetable

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

重新验证JList - 自定义元素

我正在使用JList来保存聊天程序的聊天数据.
它使用自定义列表渲染器将自定义JPanel对象呈现为元素类型.
这个JPanel包含两个JLabel(锚定到顶部,用于名称和时间),以及一个JTextArea(锚定到底部,用于聊天消息).

它看起来像这样:

一张pic1 http://oi44.tinypic.com/20jiix5.jpg

一切都很好,但我想添加一个隐藏/显示功能.
使用以前编程的PopupMenu处理程序,当您右键单击元素时,会出现一个弹出窗口.

一张pic2 http://oi42.tinypic.com/2m5exxt.jpg

当你点击隐藏(或显示,它是一个切换),那么它应该最小化元素,如此...

一张pic3 http://oi41.tinypic.com/kf3apx.jpg

唯一的问题是......它不会更新JList单元格大小,因为您可以看到文本曾经是大的空白区域.
但是,当我输入另一条消息时......

一张pic4 http://oi40.tinypic.com/35jdoo7.jpg

JList修复了完成"隐藏"操作的单元格大小.
我的问题是如何让JList以编程方式重新验证/重绘/ etc.
并且不要以为我没有尝试过所有明显的解决方案......

public void setHidden(boolean hidden) {
    // this is in the custom JPanel class
    System.out.println("Initial: " + this.getPreferredSize());

    // TextArea is the JTextArea which we set invisible when we want to hide it.
    TextArea.setVisible(!hidden); // TextArea is a variable btw
    this.invalidate();
    this.validate();
    this.repaint();

    System.out.println("After: " + this.getPreferredSize());
    container.revalidate();
}

/*
 * This is what the above printlns show when you …
Run Code Online (Sandbox Code Playgroud)

java swing custom-renderer jpanel jlist

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

在Xamarin.Forms for Android上使用Google地图

所以我们需要创建一个呈现地图的应用程序,我们目前正在使用Xamarin.Forms来集成它.但是,我们不会使用Xamarin.Forms.Maps,因为我们必须使用适用于iOS的Google Maps API而不是使用MapKit的原生地图.

我的问题是,如何在Xamarin.Forms中集成此组件https://components.xamarin.com/view/googleplayservices-maps

android google-maps custom-renderer xamarin xamarin.forms

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

Xamarin Forms android ToolbarItem 位于左侧

有很多选项和自定义渲染器可用于将优先级 = 0 的 Xamarin Forms 工具栏项移动到 iOS 中导航栏的左侧,有人可以向我指出在 Android 上实现相同操作的方法吗?

在较高的层面上,我知道我们需要使用导航页面的自定义渲染器来完成此操作,但我不太清楚 Android 上的渲染器需要做什么来实现此目的。

任何帮助都是学徒。

谢谢

custom-renderer navigationbar xamarin.android xamarin.forms

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

Xamarin.Forms:MultiLineLabel不再适用于Android

在我的Xamarin.Forms项目中,我使用MultiLineLabel在1或2行显示标题,具体取决于文本长度.我基于这个博客来实现这一目标.

所以我有一个MultiLineLabel控件:

public class MultiLineLabel : Label
{
    private static int _defaultLineSetting = -1;

    public static readonly BindableProperty LinesProperty = BindableProperty.Create(nameof(Lines), typeof(int), typeof(MultiLineLabel), _defaultLineSetting);
    public int Lines
    {
        get { return (int)GetValue(LinesProperty); }
        set { SetValue(LinesProperty, value); }
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用2个渲染器:

  • iOS上,我保留了给定的渲染器:

    public class CustomMultiLineLabelRenderer : LabelRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
        {
            base.OnElementChanged(e);
    
            MultiLineLabel multiLineLabel = (MultiLineLabel)Element;
    
            if (multiLineLabel != null && multiLineLabel.Lines != -1)
                Control.Lines = multiLineLabel.Lines; …
    Run Code Online (Sandbox Code Playgroud)

android label multiline custom-renderer xamarin.forms

4
推荐指数
1
解决办法
504
查看次数

如何使用自定义渲染器在 Xamarin Forms 中制作带圆角的进度条

我想以 Xamarin 形式显示带圆角的进度条。我能够使用自定义渲染器在 iOS 中做到这一点:

class CustomProgressBarRenderer: ProgressBarRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.ProgressBar> e)
    {
        base.OnElementChanged(e);
        Control.ProgressTintColor = Color.FromRgb(255, 201, 74).ToUIColor();
    }

    public override void LayoutSubviews()
    {
        base.LayoutSubviews();
        var X = 1.0f;
        var Y = 7.0f;
        CGAffineTransform transform = CGAffineTransform.MakeScale(X, Y);
        this.Transform = transform;
        this.ClipsToBounds = true;
        this.Layer.MasksToBounds = true;
        this.Layer.CornerRadius = 5; // This is for rounded corners.
    }
}
Run Code Online (Sandbox Code Playgroud)

如何使用自定义渲染器在 Android 中实现相同的效果。这就是我希望进度条(圆角)的外观。

在此处输入图片说明

custom-renderer xamarin.android progress-bar xamarin xamarin.forms

4
推荐指数
1
解决办法
5581
查看次数

Xamarin Form 在空字符串的 SearchBar 中触发 SearchCommand

我在 XamarinForm 上使用 SearchBar,问题是只要搜索栏为空并且我按下搜索按钮,就不会触发 SearchCommand。

我尝试在xamarin 论坛的此链接上使用自定义渲染器, 但它不起作用。

public class CustomSearchBarRenderer : SearchBarRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<SearchBar> e)
    {
        base.OnElementChanged(e);
        if (e.OldElement == null)
        {
            this.Control.QueryTextSubmit += (sender, args) =>
            {
                if (string.IsNullOrEmpty(args.Query) && Element.SearchCommand != null)
                    Element.SearchCommand.Execute(null);
            };
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请帮我

c# custom-renderer xamarin.forms

3
推荐指数
1
解决办法
2145
查看次数

自定义搜索栏与圆角xamarin形成android

具有圆角的自定义searchBar渲染器:iOS

 protected override void OnElementChanged(ElementChangedEventArgs<SearchBar> e)
            {
                base.OnElementChanged(e);

                var searchbar = (UISearchBar)Control;                
                if (e.NewElement != null)
                {                    
                    searchbar.Layer.CornerRadius = 20;
                    searchbar.Layer.BorderWidth =14;
                    searchbar.Layer.BorderColor =  UIColor.FromRGB(240,240,240).CGColor;
                }
            }
Run Code Online (Sandbox Code Playgroud)

自定义SearchBar渲染器:Android?

我需要做同样的事情,就像我为ios,自定义搜索栏与圆角和其他一些自定义,为Android我没有得到足够的信息来解决这个问题.任何人都会提供一些指示或想法.

提前致谢.

c# android custom-renderer xamarin xamarin.forms

3
推荐指数
2
解决办法
3455
查看次数

如何在Android的Xamarin.Forms中的NavigationBar的左侧添加ToolbarItem?

我需要一个密切的按钮(在这种特殊情况下),左侧导航栏,如下图所示。我仅在弹出窗口中需要它,因此其他元素/导航没有潜在的问题。

在此处输入图片说明

Google对此提出了一些建议,但我只看到了iOS示例(这并不是要处理的大事iOS custom renderer),但没有提示如何使用Android轻松)处理它。

需要明确的是,它需要使用它来Xamarin.Forms定义与此(或代码隐藏)类似的内容:

<ContentPage.ToolbarItems>
    <ToolbarItem Text="X" Priority="-1" Command="{Binding GoCancel}"/>
    <ToolbarItem Icon="icon_save" Command="{Binding GoSave}"/>
</ContentPage.ToolbarItems>
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

android custom-renderer navigationbar xamarin.forms

3
推荐指数
1
解决办法
2174
查看次数

Xamarin.Android 中的 JavascriptInterface 已过时,无法从 Javascript 调用 C#

几个月前,我有一个基于 https://learn.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/hybridwebview中的示例代码的 Webview 自定义 Xamarin.Android 渲染器

Javascript 代码完美地调用了我的 C# 代码,但是最近在最新更新之后,WebView 控件不再能够使用 API 调用 C# 操作(更准确地说,如果我的目标是 Android 9.0(API 级别 28)或更高版本) 27级还是可以的

经过更多调查后,我发现编译器会发出关于 [JavascriptInterface] 已过时的警告! https://learn.microsoft.com/en-us/dotnet/api/android.webkit.javascriptinterface?view=xamarin-android-sdk-9 他们建议使用 (IJavascriptInterface)

这是要审查的代码

[JavascriptInterface]
[Export ("invokeAction")]
public void InvokeAction (string data)
{
    HybridWebViewRenderer hybridRenderer;
    if (hybridWebViewRenderer != null && hybridWebViewRenderer.TryGetTarget (out hybridRenderer))
    {
        hybridRenderer.Element.InvokeAction (data);
    }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道如何正确实现此问题来修复该问题并让 Javascript 再次调用我的 C# 代码。

custom-renderer xamarin.android xamarin

3
推荐指数
1
解决办法
2481
查看次数